INTRODUCTION

Astronaute Engine, comme son nom Franglais qui ne veut rien dire ne l'indique pas, est un moteur d'animation pour canvas HTML écrit en pur Javascript par Christophe Leblanc en 2018. Il est autonome et ne dépend d'aucune bibliothèque externe. Il est aussi simple, facilement programmable, et de ce fait facilement adaptable et évolutif.

Il est né de l'idée d'animer un petit astronaute dessiné par ma soeur et d'en faire une petite démonstration de mes compétences en Javascript fin 2017, début 2018.

Astronaute Engine permet de programmer différentes séquences de différents types d'animations (par exemple: déplacer, tourner, redimensionner). Le tout peut être lancé de manière automatique (programmée) ou par des évènements extérieurs (un clic de souris ou tout autre événement du DOM).

Il est codé suivant une architecture tout à fait classique: Une boucle principale (game loop), un gestionnaire de scène (scene manager), un gestionnaire d'affichage (display list) et un séquenceur (timeline).


Développeur: Christophe Leblanc.


Lien: astronaute_engine.js


Démos:


Exemples d'utilisation:

//Instanciation du moteur
var engine = new AstronauteEngine(canvas, width, height, update);

//Instanciation d'une scene
var scene = new AstronauteEngine.Scene();

//Récupération de la racine
var root = scene.getRoot();

//Ajout d'une image
var image = new AstronauteEngine.NodeImage("Object", "object.jpg");
root.appendChild(image);

//Instanciation d'une séquence d'animation
var sequence = new AstronauteEngine.Sequence();

//Ajout d'une animation de type "déplacer" ("translation")
var animation = new AstronauteEngine.AnimatedTranslation(image, startTime, endTime, startX, startY, endX, endY, loop);
sequence.addAnimation(animation);

//Démarrer une séquence
sequence.start();

//Répéter une sequence à un instant donné
sequence.loopAt(loopTime);

//Finir une sequence à un instant donné
sequence.finishAt(endTime);

//Chargement d'une scene
engine.loadScene(scene);

//Démarrer le séquenceur
engine.sequencer.start();


Creative Commons License

Ce document crée par Christophe Leblanc est publié sous licence Creative Commons Attribution-ShareAlike 4.0 International License.