*   >> läser Utbildning artiklar >> science >> programming

Att göra en Space Invaders klon med tryckknapp - Bullets

spela demo Omdömen

ladda ner källkoden Omdömen

TILLBAKA TILL Handledningen INDEX Omdömen

Fram tills nu har vi använt XML enhet och nivådefinitioner som ett sätt eller definiera och skapa enheter, dvs. varje enhet i XML-filer skapas när nivån är laddad. Detta är inte meningsfullt för kulorna men eftersom de kommer att skapas som svar på tangentbordet. Tryckknappsomkopplare medger detta genom att ge oss möjlighet att initiera en enhet definieras i XML-filer med namn vid körning. Omdömen

Först måste vi definiera kulan enheten. Detta kommer att ske som en mall.

Koden för kulan mall innehåller samma rumsliga, rendering och animation komponenter som fienden vi definierade i första tutorial. Omdömen

Kod Omdömen

En ny komponent som kallas DestroyIfOffScreenComponent har skapats. Syftet är att ta bort en enhet från spelet när det har flyttats utanför skärmen. Detta är ett bekvämt sätt att rensa upp enheter som inte längre är användbara. Omdömen

Kod Omdömen

Förutom en ny komponent som kallas DamageOnContactConponent tillåter en enhet, som en kula, att tillfoga skada på en annan enhet det kolliderar med.

Den faktiska logik för att hantera hälsa en enhet kommer inte att läggas i denna tutorial, så DamageOnContactConponent komponenten helt enkelt ta bort den enhet som den är fäst vid en kollision inträffar. Omdömen

Kod Omdömen

Om du tittar noga collisionType och collidesWithTypes egenskaperna hos Box2DSpatialComponent komponenten inte sattes i Bullet mallen. Detta beror på att vi vill så småningom att ha två typer av kulor - de sparken av spelare och de som eldas med fienden. För att tillgodose detta vi definierar en ny mall som kallas PlayerBullet, baserat på Bullet mallen.

Här definierar vi PlayerBullet som en enhet som kolliderar med fiender. Omdömen

Kod Omdömen

The Enemy mallen ändras så att det kommer att kollidera med de enheter som bygger upp PlayerBullet mallen. Omdömen

Kod

Den sista förändringen är att den PlayerControllerComponent, som får en ny egenskap som kallas bulletEntityName, som definierar namnet på mallen för att skapa spelarnas kulor. Omdömen

Kod Omdömen < p> Koden för DamageOnContactConponent komponenten är ganska enkelt på denna punkt eftersom vi inte har genomfört logiken att faktiskt orsaka någon skada.

För nu lyssnar efter en kollision och tar bort den enhet som den tillhör från spelet Omdömen

 public class DamageOnContactConponent utökar EntityComponent {public var s

Page   <<       [1] [2] [3] >>
Copyright © 2008 - 2016 läser Utbildning artiklar,https://utbildning.nmjjxx.com All rights reserved.