*   >> Lese Utdanning Artikler >> science >> programming

Å gjøre en Space Invaders-klone med taste - Eksplosjoner

spille demoen

laste ned kildekoden

TILBAKE TIL TUTORIAL INDEX

Å ødelegge en fiende i respons til en kollisjon med en spiller kule kan høres enkelt nok, men det er litt av arbeidet som må gjøres i bakgrunnen for å administrere helsen til fienden, redusere at helse i respons til en kollisjon med en kule, og til slutt å vise en eksplosjon når fienden er død. Anmeldelser

Eksplosjonen, akkurat som alle andre animerte sprite, er definert i XML-filer.

I likhet med kuler den eksisterer som en mal, men er ikke lagt til noen grupper, så det er ikke lastet når nivået er lastet. Fordi eksplosjonen ikke vil delta i dueller eller flyttes rundt på skjermen er det lite behov for å simulere den med Box2D fysikkmotor. Så den romlige komponenten vil være en SimpleSpatialComponent, i motsetning til Box2DSpatialComponent brukes til fiender, spiller og kuler. Bortsett fra at de samme rendering og animasjon komponenter legges til eksplosjonen foretaket.

Kode

I tillegg er en ny komponent kalt DestroyAfterCountdownComponent er lagt til.

Hensikten med denne komponenten er å ødelegge en enhet etter en viss tidsperiode. I dette tilfellet ønsker vi å ødelegge eksplosjonen enhet når animasjonen er fullført.

Kode

Pushbutton kommer med en hendig komponent kalt HealthComponent som kan brukes til å opprettholde helsen til en enhet skal, årsaken skade til en enhet ved å redusere helse, og ødelegge foretaket gang all sin helse er borte. Denne komponenten er lagt til fienden mal, og vi setter den innledende helsen fienden til 1 (det som standard til 100).


Kode

Når helse administreres av HealthComponent er redusert til null foretaket er ødelagt som standard, men det sender også en hendelse for å la andre komponenter vet at foretaket har dødd. Den DeathHandlerComponent brukes til å se etter denne hendelsen og legge til en ny forekomst av eksplosjonen foretaket.


Kode

DamageOnContactConponent, som ble innført i forrige tutorial, har blitt modifisert for å finne den helse enhet i foretaket som har kollidert med og kaller sin skade funksjon, noe som vil redusere helsen til den andre enheten og til slutt ødelegge den. Den CollisionEvent som sendes til kollisjonen hendelsen lytteren funksjon har referanser til to Box2DSpatialComponent kalt collidee og Collider.

Du kan ikke anta det ene eller det andre tilhører samme enhet som DamageOnContactConponent, så begge må kontrolleres for å finne den B

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 Lese Utdanning Artikler,https://utdanning.nmjjxx.com All rights reserved.