*   >> Læs Uddannelse artikler >> science >> programming

Realiseringen af ​​et Space Invaders klon med Trykknap - Bullets

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:. Int

Page   <<       [1] [2] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.