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

Making Space Invaders klooni PushButton - Explosions

vässä DamageOnContactConponent () {Super (); } Suojattu Ohitustoiminto onAdd (): void {super.onAdd (); 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 {var mySpatial: Box2DSpatialComponent = owner.lookupComponentByType (Box2DSpatialComponent) kuin Box2DSpatialComponent; var muut: Box2DSpatialComponent = event.

collidee === mySpatial? event.collider: event.collidee; var otherHealth: HealthComponent = other.owner.lookupComponentByType (HealthComponent), kuten HealthComponent; jos (otherHealth! = null) otherHealth.damage (vahinko); owner.destroy (); }}

uusi DeathHandlerComponent komponentti asettaa onDied toiminto kutsutaan, jos HealthComponent.DIED tapahtuman. Sisällä onDied uuden esiintymän Räjähdys malli on luotu ja sijoitettu. Huomaa, että yritämme ja vedä viittaus sekä Box2DSpatialComponent ja SimpleSpatialComponent komponentti jotta asettaa alkuasentoon räjähdyksen.

Tietenkin me tiedämme, että räjähdys yksikkö sisältää SimpleSpatialComponent (koska sitähän me peli se XML-tiedosto), mutta jätin tämä koodi Korosta jokin kysymyksiä PushButton komponenttirakenne järjestelmä, jonka mukaan komponentteja, jotka suorittavat sama toiminta ovat usein yhteydessä toisiinsa.

Tässä tapauksessa sekä Box2DSpatialComponent ja SimpleSpatialComponent tarjota tapa sijoittaa yksikön avaruudessa, todellinen asema muuttujaa ei ole määritetty osana yhteisen rajapinnan tai perustaa luokan, pakottaa meidät tarkistamaan olemassaolon molempien komponenttien kun yrittää asettaa alkuasento.

 public class DeathHandlerComponent ulottuu EntityComponent {julkinen var PositionReference: PropertyReference = null; julkisessa tehtävässä DeathHandlerComponent () {Super (); } Suojattu Ohitustoiminto onAdd (): void {super.onAdd (); owner.eventDispatcher.

addEventListener (HealthComponent.DIED, onDied); } Suojattu Ohitustoiminto onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (HealthComponent.DIED, onDied); } Suojatun toiminnon onDied (tapahtuma: Tapahtuma): void {var asema: Point = owner.getProperty (PositionReference); var kokonaisuus: IEntity = TemplateManager.instance.instantiateEntity ("räjähdys"); jos (yksikkö! = null) {var paikkatietojen: Box2DSpatialComponent = entity.lookupComponentByType

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