*   >> lukeminen koulutus Artikkelit >> science >> programming

Making Space Invaders klooni PushButton - Bullets

; owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Suojattu Ohitustoiminto onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Yksityinen toiminto OnCollision (tapahtuma: CollisionEvent): void {owner.destroy (); }

DestroyIfOffScreenComponent komponentti tarkistaa asema yksikön kunkin kehyksen ja poistaa yksikkö, jolle se kuuluu pelin jos se on siirtynyt pois ruudulta.


 public class DestroyIfOffScreenComponent ulottuu TickedComponent {[TypeHint (tyyppi = "flash.geom.Point")] yleisillä var positionReference: PropertyReference; julkinen var screenWidth: int = 480; julkinen var screenHeight: int = 384; julkinen var sideBuffer: int = 32; julkisessa tehtävässä DestroyIfOffScreenComponent () {Super (); } Julkinen Ohitustoiminto onTick (tickRate: Numero): void {super.onTick (tickRate); var positioita: Point = owner.getProperty (positionReference); jos (asento == null) tuotto; jos (position.x> screenWidth + sideBuffer || position.

x screenHeight + sideBuffer || position.y

PlayerControllerComponent onTick toiminto on muutettu, jotta se tuleen luoteja. Ensin laskea alas ajastin nimeltään timeToNextShot että on kasvatetaan joka kerta luoti on ammuttu.

 julkisen Ohitustoiminto onTick (tickRate: Numero): void {//... timeToNextShot - = tickRate; timeToNextShot = timeToNextShot 

Jos välilyöntiä on painettu ja timeToNextShot on nolla me nollaa timeToNextShot laskuri ja luoda uusi esiintymä PlayerBullet mallin. luoteja ja -nopeuden asetetaan siten, että se näkyy ruudulla pelaajat asemassa.


 jos (InputManager.isKeyDown ( InputKey.SPACE) && timeToNextShot == 0) {timeToNextShot = timeBetweenShots; var bullet: IEntity = TemplateManager.instance.instantiateEntity (bulletEntityName), jos (luoti! = null) {var paikkatietojen: Box2DSpatialComponent = bullet.lookupComponentByType (Box2DSpatialComponent) kuin Box2DSpatialComponent ; spatial.position = uusi Point (position.x, position.y); spatial.linearVelocity = uusi Point (0, -vaihteinen); }} //...

}

Jos olet lukenut edellisen opetusohjelma sarja muistat, että lisäämällä animoitu sprite näytön suorituksen tarvitaan kiertotapa jossa animaation komponentti lisättiin yhteisölle vasta kuvan resurssi oli ladattu (se oli EntityFactory createExplosion toiminto tässä opetusohjelmassa niille, jotka haluavat katsoa). Tämä ei ole ongelma tässä käytetty menetelmä, koska kaikki Sprite levyt

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 lukeminen koulutus Artikkelit,https://koulutus.nmjjxx.com All rights reserved.