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

Å gjøre en Space Invaders-klone med taste - Den player

t = 32;

Som en generell regel konstruktøren av en komponent bør ikke inneholde noen kode. Når en ny komponent er opprettet, og konstruktøren kalles, er det ikke er festet til en enhet. Selv om de ikke er brukt her, onAdd og onRemove funksjoner er i hovedsak de samme som konstruktøren og destructor (for de C ++ programmerere der ute)

 offentlig funksjon PlayerControllerComponent () {super ().; } 

onTick funksjonen er der vi oppdatere spilleren. Først får vi en referanse til enheter hastighet og posisjon.

Disse verdiene er holdt av den romlige komponenten og knyttet i XML-malen definisjon, men det gjør ingen forskjell på PlayerControllerComponent hvor disse verdiene kommer fra. En slik løs kopling er en av de aspektene av trykknappen komponent designsystem. Den PlayerControllerComponent vet hvordan du endrer posisjon og hastighet av en enhet, men det bryr ikke hvordan posisjon og hastighet brukes

 offentlige styringsfunksjon onTick (tickRate: Number):. Void {super.onTick (tickRate ); Var hastighet: Point = owner.getProperty (velocityReference); Var posisjoner: Point = owner.

getProperty (positionReference);

Det er alltid en mulighet for at eiendommen referanser ikke ble satt, i hvilket tilfelle posisjons- og hastighetsvariabler vil være null. Selv om utgivelsen flash player mislykkes uten med slike feil, kan vi like godt forholde seg til denne muligheten grasiøst her ved ikke videre navigering.

 if (hastighet == null || posisjon == null) avkastning ; 

Først ønsker vi å bundet posisjonen til spilleren slik at det ikke vil bevege seg utenfor kanten av skjermen

 if (position.x> screenWidth - sideBuffer) position.x = screenWidth - sideBuffer.

; else if (position.x

Da må vi oppdatere hastighet avhengig av hvilken piltast trykkes, om noen

 if (InputManager.isKeyDown (InputKey.LEFT)) {velocity.x =. - hastighet;} else if (InputManager.isKeyDown (InputKey.RIGHT)) {velocity.x = hastighet;} else {velocity.x = 0;.} 

Vi deretter synkronisere disse endringene tilbake til morforetak

< pre> owner.setProperty (positionReference, posisjon), owner.setProperty (velocityReference, hastighet);}}

References.

as

Mens Trykknapp vil håndtere etableringen av komponenter fra klassenavnet strenger i XML fil, Action kompilatoren seg selv har ingen anelse om hvilke komponenter som har blitt referert i XML. Dette kan være et problem, fordi klassene ikke refereres til av Actionscript ikke er inkludert i de

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