*   >> Lezen Onderwijs artikelen >> science >> programming

Het maken van een Space Invaders kloon met PushButton - De player

n hoe ver weg van de rand van het scherm om de speler te stoppen als het horizontaal beweegt

 openbare var screenWidth. int = 480; public var speed: Number = 200; public var sideBuffer: int = 32; 

Als algemene regel geldt de bouwer van een component mag geen code bevatten. Wanneer een nieuwe component gemaakt, en de constructor wordt genoemd, is het niet aan een entiteit gehecht.

Hoewel ze hier niet worden gebruikt, de onAdd en onRemove functies zijn in wezen het equivalent van de constructeur en destructor (voor C ++ programmeurs die er zijn)

 openbare functie PlayerControllerComponent () {super ().; } 

De onTick functie is waar we het actualiseren van de speler. Eerst krijgen we een verwijzing naar de entiteiten snelheid en positie. Deze waarden zijn in handen van de ruimtelijke component en gekoppeld in de XML template definitie, maar het maakt geen verschil voor de PlayerControllerComponent waar die waarden vandaan komen.

Dit soort losse koppeling is een van de aspecten van de PushButton component ontwerp systeem. De PlayerControllerComponent weet hoe de positie en snelheid van een entiteit te wijzigen, maar het maakt niet uit hoe de positie en snelheid worden gebruikt

 openbare override functie onTick (tickrate: Number):. Leegte {super.onTick (tickrate ); var snelheid: Point = owner.getProperty (velocityReference); var posities: Point = owner.

getProperty (positionReference)

Er bestaat altijd de mogelijkheid dat de eigenschap niet gevonden werden, waarbij de positie en snelheid variabelen nul zal zijn. Hoewel de release flash speler niet in stilte met dit soort fouten, kunnen we net zo goed omgaan met deze mogelijkheid sierlijk hier door niet verder te gaan.

 if (snelheid == null || positie == null) return ; 

Ten eerste willen we de positie van de speler gebonden zodat hij niet zal bewegen van de rand van het scherm

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

; anders als (position.x

Dan moeten we het actualiseren van de snelheid afhankelijk van de pijl van het toetsenbord wordt ingedrukt, eventuele

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

We hebben toen synchroniseert deze wijzigingen terug naar de moedermaatschappij

< pre> owner.setProperty (positionReference, positie); owner.setProperty (velocityRefe

Page   <<  [1] [2] [3] [4] >>
Copyright © 2008 - 2016 Lezen Onderwijs artikelen,https://onderwijs.nmjjxx.com All rights reserved.