*   >> Læs Uddannelse artikler >> science >> programming

Realiseringen af ​​et Space Invaders klon med Trykknap - Main Menu

afspille DEMO

hente kildekoden

TILBAGE TIL tutorial INDEX

Selv om det ikke kunne være umiddelbart indlysende , statslige forvaltning, ligesom at skifte fra en menu-skærm til et spil niveau og tilbage igen, er ikke fastsat af trykknappen XML niveau lastning klasser. Mens du kan indlæse et niveau, vil det i virkeligheden indlæse alle de enheder, ud over dem, der i øjeblikket er indlæst.

Rydning aktuelt indlæste enheder er ikke en funktion af niveauet lastning, og så før et nyt niveau er indlæst skal du manuelt at ødelægge de eksisterende enheder for dig selv.

Den nemmeste måde at gøre dette er at skabe en komponent, lytter efter en global begivenhed til at være udløse og ødelægge den enhed, som den tilhører på svar. Den DestroyOnLevelClearComponent gør netop det. Det lytter efter den klare begivenhed niveau afsendt af hovedscenen objekt (en bekvem og central objekt at alle komponenter kan lytte til).

DestroyOnLevelClearComponent.

as

 public class DestroyOnLevelClearComponent udvider EntityComponent {public static const LEVEL_CLEAR: String = "LevelClear"; offentlig funktion DestroyOnLevelClearComponent () {super (); } Beskyttet overstyringsfunktionen onAdd (): void {super.onAdd (); Global.mainStage.addEventListener (LEVEL_CLEAR, levelClear); } Beskyttet overstyringsfunktionen onRemove (): void {super.onRemove (); Global.mainStage.removeEventListener (LEVEL_CLEAR, levelClear); } Beskyttet funktion levelClear (hændelse: Begivenhed): void {owner.

destroy (); }}

Nu er alle enheder, der er oprettet i løbet af det niveau, enten indlæst direkte fra en XML-erklæring, eller oprettet på runtime, få den nye DestroyOnLevelClearComponent komponent.

Kode

SwitchLevelComponent er bruges til at afsende den klare begivenhed niveau, og derefter anmode om, at et nyt niveau indlæses af LevelManager. Vi har brugt tastaturet begivenheder, i modsætning til kontrol for at se, om en nøgle er trykket hver frame, for at sikre, at niveauet clearing og lastning proces sker en gang.

SwitchLevelComponent.

as

 public class SwitchLevelComponent udvider EntityComponent {public Var niveau: int = -1; offentlig funktion SwitchLevelComponent () {super (); } Beskyttet overstyringsfunktionen onAdd (): void {super.onAdd (); Global.mainStage.addEventListener (KeyboardEvent.KEY_UP, keyup); } Beskyttet overstyringsfunktionen onRemove (): void {super.onRemove (); Global.mainStage.removeEventListener (Keyboa

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.