spela demo Omdömen
ladda ner källkoden Omdömen
TILLBAKA TILL Handledningen INDEX
Tack vare fysikmotorn när spelaren och en fiende kolliderar fienden kommer att driva spelaren ur vägen. I Space Invaders bör spelet slut när fienden och spelaren kolliderar, så vi behöver lägga till en komponent som kommer att orsaka både spelaren och fienden att explodera vid kontakt. Omdömen
Det här är något annorlunda till hälsovårdssystemet används i kollisionen mellan en fiende och spelarnas kulor.
I det scenariot kulan kommer dra några hälsa från fienden, och bör fiender hälsa når 0 i HealthComponent kommer då att förstöra fiendens enheter och skicka en händelse att låta andra komponenter vet att företaget har dött. Vid denna punkt fienden har en enhet av heden, och kulorna subtrahera en enhet för hälsa, så slutresultatet är att fiender kommer att dö med ett skott. Men i framtiden kan vi vill lägga till fiender som tar två eller flera skott, och tack vare HealthComponent som kan göras genom att ändra en XML-element.
Omdömen
I motsats en kollision mellan en spelare och en fiende bör alltid resultera i båda förstörs. För att genomföra detta en ny komponent som kallas DeathOnContactComponent skapas. Omdömen
DeathOnContactComponent.as Omdömen
public class DeathOnContactComponent utökar EntityComponent {deathCollisionTypes samlingen innehåller namnen på de enheter som kommer att orsaka denna enhet till förstöras när de kolliderar med det
public var deathCollisionTypes. Array; public function DeathOnContactComponent () {super (); } Skyddade override funktion onAdd (): void {super.onAdd (); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Skyddade override funktion onRemove (): void {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); }
I onCollision funktionen finner vi Box2DSpatialComponent av kolliderande enhet (kom ihåg att du inte kan anta att event.collidee eller event.
collider kommer alltid hänvisa till en annan enhet) och sedan finner vi reda på om den andra enhetens kollisions namn är en match för en av dem i deathCollisionTypes samlingen Omdömen
private function OnCollision (event: CollisionEvent): void {var mySpatial. Box2DSpatialComponent = owner.lookupComponentByType (Box2DSpatialComponent) som Box2DSpatialComponent; var andra: Box2DSpatialComponent = event.collidee === mySpatial event.collider: event.colliAtt göra en Space Invaders klon med tryckknapp - Enemy Bullets
- Php Jämförelse och räkna Operators
- Flytande mer än ett HTML-element på en Line
- Databastabell Data Types
- C ++ - Ta tjuren vid Horns
- Wordpress Theme Generator - det enkla sättet att skapa en Wordpress Theme
- Databas N-Ary Association
- Fönster ordningen Basics
- Ställa frågor Sybase Database
- iPhone Kärna Data självstudie Del 1
- Översikt över Mysql Regular Expressions
net