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

Making Space Invaders klooni PushButton - Enemy Bullets

Toista DEMO

ladata lähdekoodin

TAKAISIN TUTORIAL INDEX

Viime opetusohjelmassa lisäsimme komponentti jotta yhteisöille hävitettäväksi törmäyksessä. Tämä ohittaa HealthComponent käyttämä vihollisen yksiköt, mutta nyt tulemme täyden ympyrän ja lisätä HealthComponent soittimeen niin se voi vaurioittaa vihollisen luodit. Tässä lisäämme HealthComponent, ja täsmentää, että leikki on aluksi terveyden 5.

Koodi

pelaaja ampua meidän on luotava uuden yrityksen malli.

Tämä on lähes tarkka kopio EnemyBullet mallin, paitsi yksikön tyypin ja törmäys tyypit muutetaan tunnistaa sen luoti ampumia vihollinen ja törmätä pelaaja.

Koodi

EnemyControllerComponent .as

Aivan kuten PlayerControllerComponent, joka luo uuden PlayerBullet yksikön kun välilyöntiä on painettu, EnemyControllerComponent satunnaisesti luo uuden EnemyBullet kokonaisuus.

timeToNextShot muuttuja, jota käytetään valvonta paljon aikaa keskenään mahdollisimman ampumisen luoti, lasketaan alas 0.

 julkisen Ohitustoiminto onTick (tickRate: Numero): void {//...

timeToNextShot - = tickRate; timeToNextShot = timeToNextShot

Kun timeToNextShot saavuttaa 0 vihollinen on mahdollisuus ampua luodin. TimeToNextShot nollataan aloittaa kulua uudelleen.

 jos (timeToNextShot == 0) {timeToNextShot = timeBetweenShots; 

Haluamme nämä kuvat olla satunnainen, joten käytämme chanceOfShot muuttuja satunnaistoiminto onko laukaus on otettava. Seuraavat jos ilmoitus on 1 chanceOfShot mahdollisuudet tulla totta.

 jos (Math.round (Math.

random () * chanceOfShot) == 0) {

Jos jos ilmoitus olla totta uusi esiintymä EnemyBullet malli luodaan, sijoitetaan ja nopeus asetettu.

 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, bulletSpeed); }}}}

Meidän on tehtävä pieni muutos PlayerControllerComponent lopettaa vihollisen luodit koputtaa pelaaja pois ruudulta. Kun kaksi objektia törmäävät fysiikan järjestelmä he eivät vain lopeta kuollut - elleivät he törmäävät pään yhtä lailla yksi poikkeuksetta kolahtaa muiden uuteen asentoon, kuten kaksi biljardi pallot. Tämä on luonnollinen reaktio, mutta meidän tapauksessamme emme halua vihollisen luodi

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