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

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

spille demoen

laste ned kildekoden

TILBAKE TIL TUTORIAL INDEX

Frem til nå har vi vært å bruke XML enhet og nivådefinisjoner som en måte eller som definerer og skaper enheter dvs. hver enhet i XML-filer er opprettet når nivået er lastet. Dette gir ikke mening for kulene selv, ettersom de vil bli opprettet som svar på keyboard input. Pushbutton åpner for dette ved å gi oss muligheten på å bruke en enhet definert i XML-filer med navn under kjøring.

Først må vi definere kulen enhet. Dette vil bli gjort som en mal.

Koden for kulen malen inneholder den samme romlige, rendering og animasjon komponenter som fienden vi definert i den første opplæringen.

Kode

En ny komponent kalt DestroyIfOffScreenComponent har blitt opprettet. Formålet er å fjerne en enhet fra spillet når den har beveget seg utenfor skjermen. Dette er en praktisk måte å rydde opp i enheter som ikke lenger er nyttige.

Kode

I tillegg til en ny komponent kalt DamageOnContactConponent tillater en enhet, som en kule, for å påføre skade på en annen enhet det kolliderer med.

Selve logikken å administrere helsen til en enhet vil ikke bli lagt i denne opplæringen, slik at DamageOnContactConponent komponenten vil bare fjerne den enheten som det er festet når det oppstår en kollisjon.

Kode

Hvis du ser nøye de collisionType og collidesWithTypes egenskapene til Box2DSpatialComponent komponent ikke ble satt i Bullet malen. Dette er fordi vi etter hvert ønsker å ha to typer kuler - de sparken av spilleren og de sparken av fienden. For å imøtekomme dette har vi definere en ny mal som heter PlayerBullet, basert på Bullet mal.

Her definerer vi PlayerBullet som en enhet som kolliderer med fiender.

Kode

The Enemy malen er endret slik at det vil kollidere med enheter basert utenfor PlayerBullet mal.

Kode

Den siste endringen er til PlayerControllerComponent, som får en ny egenskap som kalles bulletEntityName, som definerer navnet på malen for å skape spillernes kuler.

Kode

< p> Den koden for DamageOnContactConponent komponenten er ganske enkelt på dette punktet fordi vi ikke har implementert logikken å faktisk påføre noen skade.

For nå er det lytter etter en kollisjon og fjerner foretaket som den tilhører fra spillet

 public class DamageOnContactConponent strekker EntityComponent {public Var skade. Int = 0; offentlig funksjon DamageOnContactConponent () {super (); 

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