*   >> Lecture Éducation Articles >> science >> la programmation

Faire un clone de Space Invaders avec PushButton - principal Menu

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

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.