jouer à la démo
télécharger le code SOURCE
Retour à la index du tutoriel
Bien que cela puisse ne pas être immédiatement évidente , la gestion de l'Etat, comme le passage d'un écran de menu pour un niveau de jeu et retour, ne sont pas fournis par le bouton-poussoir XML classes de chargement de niveau. Alors que vous pouvez charger un niveau, il sera en fait charger toutes les entités en plus de celles qui sont actuellement chargé.
Effacement entités actuellement chargées est pas une fonction de la charge de niveau, et donc avant un nouveau niveau est chargé, vous devez détruire manuellement les entités existantes pour vous-même.
La meilleure façon de le faire est de créer un composant qui écoutes pour un événement mondial à être gâchette et détruire l'entité à laquelle il appartient en réponse. Le DestroyOnLevelClearComponent fait justement cela. Il écoute l'événement clairement de niveau dépêchée par l'objet de la scène principale (un objet pratique et central que tous les composants peuvent écouter).
DestroyOnLevelClearComponent.as
DestroyOnLevelClearComponent public class étend EntityComponent {public static LEVEL_CLEAR const: String = "LevelClear"; DestroyOnLevelClearComponent public function () {super (); } Fonction protégée override onAdd (): void {super.onAdd (); Global.mainStage.addEventListener (LEVEL_CLEAR, levelClear); } Protected override fonction onRemove (): void {super.onRemove (); Global.mainStage.removeEventListener (LEVEL_CLEAR, levelClear); } Fonction protégée levelClear (event: Event): void {owner.destroy (); }}
Maintenant toutes les entités créées dans le cadre du niveau, soit chargées directement à partir d'une déclaration XML ou créés lors de l'exécution, obtiennent le nouveau composant de DestroyOnLevelClearComponent.
Code
Le SwitchLevelComponent est utilisé pour distribuer l'événement clairement de niveau, puis demander à un nouveau niveau sera chargé par le LevelManager.
Nous avons utilisé les événements de clavier, par opposition à la vérification pour voir si une touche a été pressée chaque image, afin d'assurer que le processus de compensation de niveau et le chargement est effectué une fois.
SwitchLevelComponent.as
SwitchLevelComponent public class étend EntityComponent {niveau public var: int = -1; SwitchLevelComponent public function () {super (); } Fonction protégée override onAdd (): void {super.onAdd (); Global.mainStage.addE
AS3IsoLib Tutorial Series - Obtenir Started
- Forfaits et réflexive Relationships
- Montre satellite - télévision câblée Online
- Opérateurs isolés en C ++
- Edit Control dans Windows
- Construire une Mysql Expression
- Programmeur En Heart
- Variables comme synonymes dans Php
- Votre Première Window
- PushButton Tutorial Series - Chargement Resources
- Début et de fin en C ++