afspille DEMO
hente kildekoden
TILBAGE TIL tutorial INDEX
Indtil nu har vi ved hjælp af XML-enhed og niveau definitioner som en måde eller definerer og skaber enheder dvs enhver enhed i XML-filer oprettes, når niveauet er indlæst. Dette giver ikke mening for kuglerne dog, som de vil blive oprettet som reaktion på tastatur input. Trykknap giver mulighed for dette ved at give os mulighed for at instantiere en enhed defineret i XML-filer ved navn på runtime.
Først skal vi definere kugle enhed. Det vil ske som en skabelon.
Koden til skabelon kuglen indeholder den samme rumlige, rendering og animation komponenter som fjenden, vi definerede i første tutorial.
Kode
En ny komponent kaldet DestroyIfOffScreenComponent er blevet oprettet. Dens formål er at fjerne en enhed fra spillet, når det har bevæget væk fra skærmen. Dette er en praktisk måde at rydde op i enheder, der ikke længere brugbare.
Kode
Desuden en ny komponent kaldet DamageOnContactConponent tillader en enhed, som en kugle, at forvolde skade på en anden enhed det kolliderer med.
Den egentlige logik til at styre sundheden for en enhed vil ikke blive tilføjet i denne tutorial, så DamageOnContactConponent komponent blot vil fjerne den enhed, som den er fastgjort, når en kollision indtræffer.
Kode
Hvis man ser nøje collisionType og collidesWithTypes egenskaber af Box2DSpatialComponent komponenten blev ikke sat i Bullet skabelonen. Det er fordi vi i sidste ende ønsker at have to typer af kugler - dem fyret af spilleren, og dem fyret af fjenden. For at imødekomme dette har vi definere en ny skabelon kaldet PlayerBullet, baseret på Bullet skabelonen.
Her definerer vi PlayerBullet som en enhed, der kolliderer med fjender.
Kode
The Enemy skabelon er modificeret, så det vil kollidere med de enheder, baseret off PlayerBullet skabelon.
Kode
Den sidste ændring er at den PlayerControllerComponent, der får en ny ejendom kaldet bulletEntityName, som definerer navnet på skabelonen, hvorfra man kan skabe de spillere kugler.
Kode
< p> kode for DamageOnContactConponent komponent er ganske simpelt på dette punkt, fordi vi ikke har gennemført logikken til rent faktisk at påføre nogen skade.
For nu er det lytter efter en kollision og fjerner den enhed, som den tilhører fra spillet
public class DamageOnContactConponent udvider EntityComponent {offentlige var skader:. IntRealiseringen af et Space Invaders klon med Trykknap - Explosions
- Bestemmelse af primære nøgler i databasen Entities
- Netværk fejlfinding Commands
- Grundlæggende om Window Klasser
- Hvad er en integreret system?
- Grundlæggende om ActivePerl Variable Scope
- Indeks Til Database Tables
- Database tabel datatyper
- Mysql Regular Expressions Mønster Constructs
- Oprettelse af en Flash-platform spil med flixel og Flex - squishing afspilleren
- Database Normalisering fra top-niveau View