Toista DEMO
ladata lähdekoodin
TAKAISIN TUTORIAL INDEX
Kiitos fysiikkamoottori kun soitin ja vihollinen törmäävät vihollinen työntää pelaaja pois tieltä. Vuonna Space Invaders pelin pitäisi päättyä, kun vihollinen ja pelaaja törmäävät, joten meidän täytyy lisätä komponentti, joka aiheuttaa sekä pelaaja ja vihollinen räjähtävät osuessaan.
Tämä on hieman erilainen kuin terveydenhuoltojärjestelmää käytetään törmäys välillä vihollinen ja pelaajat luoteja.
Tässä skenaariossa luoti vähentää joitakin terveydelle vihollinen, ja olisi viholliset terveys saavuttaa 0 HealthComponent sitten tuhota vihollisen yksikön ja lähettää tapahtuma antaa muut tietävät, että yhteisö on kuollut. Tässä vaiheessa vihollinen on 1 yksikkö nummi, ja luoteja vähentää 1 yksikkö terveyden, joten lopputulos on että viholliset kuolevat yhdellä laukauksella. Mutta tulevaisuudessa saatamme haluta lisätä vihollisia, jotka ottaa kaksi tai enemmän laukauksia, ja kiitos HealthComponent joka voidaan tehdä muokkaamalla yhden XML-elementti.
Sen sijaan törmäyksen välillä pelaaja ja vihollinen tulisi aina johtaa molemmissa tuhotaan. Toteuttaakseen tämän uuden osan nimeltä DeathOnContactComponent on luotu.
DeathOnContactComponent.as
public class DeathOnContactComponent ulottuu EntityComponent {deathCollisionTypes kokoelma omistaa nimet yhteisöistä, aiheuttaa tämä yhteisö tuhotaan, kun he törmäävät sen.
yleisillä var deathCollisionTypes: Array; julkisessa tehtävässä DeathOnContactComponent () {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); }
onCollision toiminto löydämme Box2DSpatialComponent törmäävän yksikön (muista, että et voi olettaa, että event.collidee tai event.collider saadaan johdonmukaisesti viittaavat muun yksikön), ja sitten saamme selville, jos muut yhteisön törmäys nimi on ottelu yksi niistä on deathCollisionTypes kokoelma.
oma toiminto OnCollision (tapahtuma: CollisionEvent): void {var mySpatial: Box2DSpatialComponent = owner.lookupComponentByType (Box2DSpatialComponent) kuin Box2DSpatialComponent; var muut: Box2DSpatialComponent = event.collidee === mySpatial? event.collider: event.collidee; kutakin (var collisionType: merkkijono deMaking Space Invaders klooni PushButton - Enemy Bullets
- Johdatus PHP
- Global ja toiminta kiikaritähtäin vuonna Php
- HTML Image Source Attribute
- Abstraction Oop
- Iphone Application Development: iPhone Apps Kalastus Enthusiasts
- Termit ja määritelmät on Mass Storage Devices
- Kelluva yli yksi HTML-elementti on Line
- Boolean Logic Php
- Poikkeamien käsittely C ++
- Java Oppaat - Oppitunti 2: Primitive tietotyypit ja muuttujat (kokonaisluku, dou…