spille demoen
laste ned kildekoden
TILBAKE TIL TUTORIAL INDEX
Takk til fysikkmotor når spilleren og en fiende kolliderer fienden vil presse spilleren ut av veien. I Space Invaders spillet skulle ende når fienden og spilleren kolliderer, så vi må legge til en komponent som vil føre til både spilleren og fienden til å eksplodere ved kontakt.
Dette er litt annerledes enn helsesystemet brukes i kollisjonen mellom en fiende og spillernes kuler.
I dette scenariet kulen vil trekke noen helse fra fienden, og bør fiender helse nå 0 er HealthComponent vil da ødelegge fiendens enhet og sende en begivenhet for å la andre komponenter vet at foretaket har dødd. På dette punktet fienden har en enhet av lynghei, og kulene trekke en enhet for helse, så sluttresultatet er at fiendene vil dø med ett skudd. Men i fremtiden kan vi ønsker å legge til fiender som tar to eller flere skudd, og takk til HealthComponent som kan gjøres ved å endre én XML element.
I motsetning en kollisjon mellom en spiller og en fiende bør alltid resultere både å bli ødelagt. For å gjennomføre dette en ny komponent kalt DeathOnContactComponent er opprettet.
DeathOnContactComponent.as
public class DeathOnContactComponent strekker EntityComponent {deathCollisionTypes Samlingen inneholder navnene på de enhetene som vil føre dette foretaket bli ødelagt når de kolliderer med det
offentlige Var deathCollisionTypes. Array; offentlig funksjon DeathOnContactComponent () {super (); } Beskyttet Styringsfunksjonen onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Beskyttet Styringsfunksjonen onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); }
I onCollision funksjonen finner vi Box2DSpatialComponent av de kolliderende enhet (husk at du ikke kan anta at event.collidee eller event.
collider vil konsekvent referere til annen enhet), og deretter finner vi ut om den andre enhetens kollisjon navn er en kamp for en av de i deathCollisionTypes samlingen
privat funksjon OnCollision (event: CollisionEvent): void {var mySpatial. Box2DSpatialComponent = owner.lookupComponentByType (Box2DSpatialComponent) som Box2DSpatialComponent; Var andre: Box2DSpatialComponent = event.collidee === mySpatial event.collider:? event.collidee; for hver (var collisionType: String i deathCollisionTypes
Å gjøre en Space Invaders-klone med taste - Enemy Bullets
- Hvordan få iPod Touch /iPhone Firmware 3.1.2 og jailbreak det for 1G, 2G, 3G bl…
- Android Programmering: I. Android aktivitet Lifecycle & amp; ndash; Concepts
- 17 måter å få Vista til å kjøre raskere
- Quick Introduksjon til Uml
- Banner Html Document
- Posisjonering HTML-elementer med CSS og Lagdeling
- Web Design Advice
- Database tabelldata Types
- Opprette en Flash plattformspill med Flixel og Flex - Enemies
- Skrive Windows Mobile Application Ved hjelp av Google-data Apis
NET - C # - Bruke UserControls Mail …