Comment faire un homme de bâton en marche lorsque vous appuyez sur une touche débordement de la pile

J'ai créé un MovieClip Stickman. En ce que, je crée une animation en traçant une séquence de mouvement dans everyframe, de sorte que stickman peut fonctionner. Maintenant, ce que je veux est que lorsque j'appuie sur une touche, l'homme de bâton se déroulera de gauche à droite et quand je relâchez la touche, il arrêtera. Ceci est mon code:







Cependant, quand je vous appuyez de une clé, elle est passée de gauche à droite sans course animée.

Comment puis-je résoudre ce problème? Merci d'avance.

EDIT: J'ai un personnage appelé MovieClip contenant 3 MovieClip: debout. courir et sauter. respectivement. Quand je pressais touche flèche, il sauter, mais si je libéré la clé tout de suite, il n'a pas sauter haut que le saut movieclip n'a pas pu terminer ses cadres. Voici le code:

Comment puis-je résoudre ce problème?

Tout d'abord, je l'espère RunningMan est une instance de la classe, et non pas la classe elle-même. Et si c'est un exemple, vous devriez vraiment suivre les conventions de nommage communes pour lorsque vous partagez votre code avec d'autres (comme vous faites maintenant) il serait RunningMan.







Alors 1er, faire le 1er image du scénario du runnigMan une image de l'alambic homme debout et nommez-le « encore » ou quelque chose. nom, puis le second « en cours d'exécution » et étendre que, comme 20 images ou aussi longtemps que l'animation est. à la dernière image que vous devrez utiliser le code de chronologie. une seule ligne de gotoAndPlay ( « running ») entraînera les cadres de 2 à 20 (ou autre) en boucle. Lorsque vous dites la timeline pour aller à l'image 1 de l'extérieur du code de scénario, il boucle wont plus et restera sur le cadre de l'homme debout encore. Donc, à l'extérieur quand vous voulez la boucle pour commencer:

Ou vous pouvez le faire à l'intérieur de la classe RunningMan

Et vous pouvez les utiliser simplement en remplaçant ces noms de fonction avec ceux que vous avez si votre ex de code (au lieu de jeu () il serait startRunAnimation ())

Ce que vous pouvez faire pour ce problème est d'avoir une variable booléenne lorsque votre personnage est dans l'air (quelque part dans votre code où vous faites la détection de collision avec le sol ou lorsque vous gérez la gravité - mais il est mis en place), de sorte que cette partie de votre code savoir quand votre personnage est dans l'air. Et alors vous pourriez simple test pour cette façon mais vous en avez besoin.

Bien que si votre personnage n'a pas inheirt d'un objet collidable qui a gravité, la friction, etc., alors vous devrez rendre la propriété InAir de toute autre classe, public ou faire fonctionner getter pour elle - de sorte que vous pouvez y accéder ici. J'espère que ça aide.







Articles Liés