2013-08-26 4 views
0

J'ai fait un jeu simple en flash. Il comprend une minuterie, des objets qui tombent et un objet contrôlé en utilisant le balayage. Il y a donc un moyen d'arrêter chaque activité avec le bouton de pause et de le relancer avec le bouton de lecture. Fondamentalement, je veux que toute la scène fasse une pause et joue avec les boutons.Comment coder un bouton play et pause en flash AS3

Répondre

1

Il n'y a aucun moyen de le faire automatiquement. Vous pouvez baser votre jeu entier sur une minuterie (même pour les animations et la physique) et mettre cette minuterie en pause. Mais c'est une fonctionnalité à laquelle vous devez penser pendant la conception même de votre jeu. Maintenant, je suppose que vous avez juste à mettre en pause chaque MovieClip, annuler vos auditeurs à ENTER_FRAME et mettre en pause votre minuterie.

De nombreux moteurs de jeu tels que Flixel ou FlashPunk incluent cette fonctionnalité

0

La façon dont je le fais en AS3 est d'exécuter deux minuteries, qui fonctionne toujours à environ 500 ms et une autre qui fonctionne à framerate qui varie avec la vitesse Du jeu. Quelque chose comme

public var speedControl:int = 15; 
public var tick:Timer; 

public function timers():void{ 
    tick = new Timer(1000/speedControl); 
    tick.addEventListener(TimerEvent:TIMER,tickd); 
    tick.start(); 
} 

public function tickd(t:TimerEvent):void{ 
    // the timer has ticked 
} 

public function pause():void{ 
    tick.stop(); 
} 

public function play():void{ 
    tick.start(); 
} 

Ceci est un exemple de base bien sûr créé à la volée, mais vous pouvez appeler la touche de pause ou jouer avec un écouteur d'événement standard. Si toute votre scène s'écoule de la minuterie, tout s'arrêtera. J'utilise une seconde minuterie mais cela ne s'arrête pas et a commencé avec les fonctions aussi. Vous voulez vraiment que certaines choses fonctionnent tout le temps.