*   >> Lese Utdanning Artikler >> science >> programming

Å gjøre en Space Invaders-klone med taste - Hovedmeny

spille demoen

laste ned kildekoden

TILBAKE TIL TUTORIAL INDEX

Selv om det kanskje ikke er umiddelbart åpenbare, statlig styring, som å bytte fra en menyskjerm til et spill nivå og tilbake igjen, ikke er levert av trykknappen XML nivå lasting klasser. Mens du kan laste et nivå, vil det faktisk laste alle enhetene i tillegg til de som er lastet. Fjerne tiden lastet enheter er ikke en funksjon av nivået lasting, og så før et nytt nivå er lastet du trenger å ødelegge eksisterende enheter manuelt selv.


Den enkleste måten å gjøre dette på er å lage en komponent som lytter etter en global begivenhet å være trigger og ødelegge den enheten som det hører hjemme i respons. Den DestroyOnLevelClearComponent gjør nettopp det. Det lytter for nivået klart hendelsen sendt ut av hovedscenen objekt (en praktisk og sentral objekt som alle komponenter kan lytte til).

DestroyOnLevelClearComponent.

as

 public class DestroyOnLevelClearComponent strekker EntityComponent {public static konst LEVEL_CLEAR: String = "LevelClear"; offentlig funksjon DestroyOnLevelClearComponent () {super (); } Beskyttet Styringsfunksjonen onAdd (): void {super.onAdd (); Global.mainStage.addEventListener (LEVEL_CLEAR, levelClear); } Beskyttet Styringsfunksjonen onRemove (): void {super.onRemove (); Global.mainStage.removeEventListener (LEVEL_CLEAR, levelClear); } Beskyttet funksjon levelClear (hendelse: Hendelse): void {owner.

destroy (); }}

Nå er alle enheter som er opprettet i løpet av nivået, enten lastet direkte fra en XML-deklarasjon eller opprettet under kjøring, får den nye DestroyOnLevelClearComponent komponent.

Kode

SwitchLevelComponent er brukes til å sende nivået klart hendelsen, og deretter be om at et nytt nivå bli lastet av LevelManager. Vi har brukt tastaturet hendelser, i motsetning til å sjekke for å se om en tast er trykket hver ramme, for å sikre at nivået clearing og lasting prosessen er gjort en gang.

SwitchLevelComponent.

as

 public class SwitchLevelComponent strekker EntityComponent {public Var nivå: int = 1; offentlig funksjon SwitchLevelComponent () {super (); } Beskyttet Styringsfunksjonen onAdd (): void {super.onAdd (); Global.mainStage.addEventListener (KeyboardEvent.KEY_UP, keyUp); } Beskyttet Styringsfunksjonen onRemove (): void {super.onRemove (); Global.mainStage.removeEventListener (KeyboardEvent.

KEY_UP, keyUp); } Beskyttet funksjon keyUp (event: KeyboardEvent): void {if (e

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.