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

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

} Beskyttet Styringsfunksjonen onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Beskyttet Styringsfunksjonen onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Private funksjon OnCollision (event: CollisionEvent): void {owner.destroy (); }

DestroyIfOffScreenComponent komponent kontrollerer stillingen til selskapet hver ramme og fjerner foretaket som den tilhører fra spillet hvis den har flyttet ut av skjermen.


 public class DestroyIfOffScreenComponent strekker TickedComponent {[TypeHint (type = "flash.geom.Point")] offentlig Var positionReference: PropertyReference; offentlig Var screenWidth: int = 480; offentlig Var screenHeight: int = 384; offentlig Var sideBuffer: int = 32; offentlig funksjon DestroyIfOffScreenComponent () {super (); } Public override funksjonen onTick (tickRate: Number): void {super.onTick (tickRate); Var posisjoner: Point = owner.getProperty (positionReference); if (posisjon == null) tilbake; if (position.x> screenWidth + sideBuffer || position.

x screenHeight + sideBuffer || position.y

PlayerControllerComponent onTick funksjonen har blitt endret for å tillate det å fyre av kuler. Først teller vi ned en tidtaker som heter timeToNextShot som er økes hver gang en kule er avfyrt

 offentlige styringsfunksjon onTick (tickRate: Number):. void {//... timeToNextShot - = tickRate; timeToNextShot = timeToNextShot 

Hvis mellomromstasten er trykket og den timeToNextShot lik null vi nullstille timeToNextShot disken og opprette en ny forekomst av PlayerBullet mal.

Den kuler posisjon og hastighet er satt slik at det vises på skjermen på spillerne posisjon.

 if (InputManager.isKeyDown ( InputKey.SPACE) && timeToNextShot == 0) {timeToNextShot = timeBetweenShots; Var bullet: IEntity = TemplateManager.instance.instantiateEntity (bulletEntityName); if (bullet = null) {var romlig: Box2DSpatialComponent = bullet.lookupComponentByType (Box2DSpatialComponent) som Box2DSpatialComponent ; spatial.position = new Point (position.x, position.y); spatial.linearVelocity = new Point (0, speed); }} //...

}

Hvis du har lest den forrige tutorial serien du husker kanskje at å legge animerte sprites til skjermen under kjøring kreves en midlertidig løsning til hvor animasjonen komponenten ble lagt til foretaket bare etter bildet ressurs var lastet (det var i EntityFactory createExplo

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