VOIR LA DEMO
télécharger le code SOURCE
Retour à la index du tutoriel
Dans le dernier tutoriel nous avons créé un AnimationController mise à jour automatique L'image présentée par le SpriteRenderComponent, résultant en une image animée. Maintenant, nous allons étendre l'élément du keyboardcontroller pour lui permettre de signaler la AnimationController pour changer l'animation actuelle, qui va nous permettre de montrer différentes animations basées sur la saisie au clavier, comme une animation courir quand une touche fléchée est enfoncée.
Le AnimationController nécessite deux choses pour être en mesure d'échanger des animations à la demande. Le premier est le nom d'un événement qui sera distribué lorsque l'animation doit être changé. Il est défini par la propriété changeAnimationEvent
EntityFactory.as
Animation.changeAnimationEvent = "PlayerAnimation".La seconde est une référence à une propriété qui décrit le nom de l'animation qui devrait être joué. Ceci est une fonction get que nous allons ajouter à la composante keyboardcontroller
Animation.currentAnimationReference = new PropertyReference ("@ Input.currentAnimation.");
Ce qui se passe maintenant est que les besoins lorsque l'animation affichée à modifier un événement est distribué par l'entité, dans ce cas avec le nom "PlayerAnimation". Il n'y a pas de données associée à cet événement:.
L'AnimationController utilisera le déclenchement de l'événement comme un signal pour demander l'animation qui doit être affiché à travers la référence de la propriété affectée à la propriété changeAnimationEvent
Dispatching la "PlayerAnimation" événement et fournir un le nom de l'animation souhaitée est le travail de l'keyboardcontroller. La fonction de currentAnimation fournit un moyen pour le AnimationController à lire le nom de l'animation actuelle
KeyboardController.as
public function get currentAnimation ():.Chaîne {animation de retour;}
Le onTick fonction est mis à jour pour enregistrer la dernière direction du joueur (avec la variable face), si elle est en mouvement ou pas (avec la variable d'inactivité), et à envoyer un événement lorsque l'animation doit être changé.
public override function onTick (tickrate: Number): void {var position: point = owner.getProperty (PositionReference); si (InputManager.isKeyDown (InputKey.RIGHT)) {if (face || ralenti!) {face = true; inactif = false; animation = "RunRight"; owner.eventDispatcher.dispatchEvent (nouvel événement (AnimationEventName)); } XMovement + = Vitesse * tickrate; while (xMovement> = 1) {position.x + = 1; xMovement - = 1; }} Else if (InputManager.isKeyDown (InputKey.LEFT)) {if (face || ralenti) {face = false; inactif = false; animation = "RunLeft"; owner.eventDispatcher.dispatchEvent (nouvel événement (AnimationEventName)); } XMovement - = Vitesse * tickrate; while (xMovement else if (inactif) {ralenti = true; animation = face "IdleRight"?: "IdleLeft"; owner.eventDispatcher.dispatchEvent (nouvel événement (AnimationEventName));} if (! InputManager.
isKeyDown (InputKey.DOWN) ) {yMovement + = Vitesse * tickrate; while (yMovement>
PushButton Tutorial Series - Tracking & amp; amp; Jumping
- Un guide pour débutants c ++
- Premiers pas avec C
- Java Tutoriels - Leçon 3: relationnel et Boolean Operators
- Away3D Programmation Tutorial - Environnement Material
- iPhone composer un numéro de téléphone Partie 1
- Windows Presentation Foundation (WPF)
- Portée mondiale et variable en fonction Php
- La valeur commerciale du Requirements
- L'intégrité référentielle dans Database
- Bases de PHP Variables