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

Making Space Invaders klooni PushButton - Killing Player

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 de

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