*   >> läser Utbildning artiklar >> science >> programming

Att göra en Space Invaders klon med tryckknapp - Bullets

kador. Int = 0; public function DamageOnContactConponent () {super (); } Skyddade override funktion onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Skyddade override funktion onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Private function OnCollision (event: CollisionEvent): void {owner.

destroy (); }

DestroyIfOffScreenComponent komponenten kontrollerar läget för företagets varje ram och tar bort den enhet som den tillhör från spelet om det har rört sig utanför skärmen. Omdömen

 public class DestroyIfOffScreenComponent utökar TickedComponent {[TypeHint (typ = "flash.geom.Point")] public var positionReference: PropertyReference; public var screenWidth: int = 480; public var screenHeight: int = 384; public var sideBuffer: int = 32; public function DestroyIfOffScreenComponent () {super (); } Public override function onTick (tickrate: Number): void {super.

onTick (tickrate); var läge: Point = owner.getProperty (positionReference); if (läge == null) avkastning; if (position.x> screenWidth + sideBuffer || position.x screenHeight + sideBuffer || position.y

PlayerControllerComponent onTick funktionen har modifierats för att göra det möjligt att avfyra kulorna. Först räknar vi ner en timer som kallas timeToNextShot som är ökas varje gång en kula avfyras Omdömen

 public override function onTick (tickrate: Number):. void {//...

timeToNextShot - = tickrate; timeToNextShot = timeToNextShot

Om du har tryckt på mellanslagstangenten och den timeToNextShot lika med noll vi återställa timeToNextShot disken och skapa en ny instans av PlayerBullet mallen. Kulorna position och hastighet är inställd så att den visas på skärmen spelarna position. Omdömen

 if (InputManager.isKeyDown ( InputKey.SPACE) && timeToNextShot == 0) {timeToNextShot = timeBetweenShots, var bullet: IEntity = TemplateManager.instance.instantiateEntity (bulletEntityName) if (kula = null) {var spatial: Box2DSpatialComponent = bullet.

lookupComponentByType (Box2DSpatialComponent) som Box2DSpatialComponent ; spatial.position = new Point (position.x, position.y); spatial.linearVelocity = new Point (0, -växlad); }} //...}

Om du har läst den tidigare läraren serie som du kanske minns att lägga till animerade sprites på skärmen under körning krävs en lösning där animeringen komponenten sattes till enheten först efter det att bildresurs v

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.