spille demoen
laste ned kildekoden
TILBAKE TIL TUTORIAL INDEX
I den siste opplæringen vi lagt en komponent for å tillate enheter for å bli ødelagt på kollisjon. Dette omgås HealthComponent brukes av fiendtlige enheter, men nå kommer vi full sirkel og legge til en HealthComponent til spilleren slik at den kan bli skadet av fiendens kuler. Her legger vi HealthComponent, og angi at stykket har en initial helse 5.
Kode
For spilleren å bli skutt vi trenger for å lage en ny enhet mal.
Dette er nesten en eksakt kopi av EnemyBullet mal, unntatt enhet type og kollisjonstyper er endret for å identifisere den som en kule skutt av en fiende og kolliderer med spilleren.
Kode
EnemyControllerComponent .as
Akkurat som PlayerControllerComponent, noe som skaper en ny PlayerBullet enhet når mellomromstasten er trykket, vil EnemyControllerComponent tilfeldig opprette en ny EnemyBullet enhet.
timeToNextShot variable, som brukes til kontroll hvor lang tid mellom hver mulig avfyring av en kule, telles ned til 0.
offentlige styringsfunksjon onTick (tickRate: Number): void {//... timeToNextShot - = tickRate; timeToNextShot = timeToNextShotNår timeToNextShot når 0 fienden vil ha en sjanse til å fyre av en kule. Den timeToNextShot er reset for å starte nedtellingen igjen
if (timeToNextShot == 0) {timeToNextShot = timeBetweenShots;.Vi ønsker disse bildene til å være tilfeldig, så vi bruker chanceOfShot variabel med tilfeldighetsfunksjon for å bestemme om et skudd bør tas. Følgende hvis setningen har en 1 i chanceOfShot sjanse for å bli sann.
if (Math.round (Math.random () * chanceOfShot) == 0) {
Skulle hvis setningen være sant en ny forekomst av EnemyBullet malen er opprettet, plassert og hastigheten satt
Var bullet. IEntity = TemplateManager.instance.instantiateEntity (bulletEntityName); if (bullet = null!) {var romlig: Box2DSpatialComponent = bullet.lookupComponentByType (Box2DSpatialComponent) som Box2DSpatialComponent; spatial.position = new Point (position.x, position.y); spatial.linearVelocity = new Point (0, bulletSpeed); }}}}
Vi har å gjøre en liten endring i PlayerControllerComponent å stoppe fiendens kuler banket spilleren utenfor skjermen. Når to objekter kolliderer i et fysikksystem de ikke bare stoppe døde - med mindre de kolliderer hodet på med like stor kraft man vil alltid støte den andre inn i en ny stilling, som to bilja
Å gjøre en Space Invaders-klone med taste - Hovedmeny
- Perl Henvisning til en Array
- Javascript Betingede erklæringer
- Hva er en algoritme?
- AS3IsoLib Tutorial Series - Komme Started
- Kommandoer Associated med filer og mapper: Batch File Programming
- Best 7 Android Apps For Entertainment
- iPhone Lage Custom UITableViewCells Bruke IB
- Database Events
- Java Tutorials - Leksjon 3: Relasjons og boolsk Operators
- Grunnleggende kommandoer: Batch File Programming