afspille DEMO
hente kildekoden
TILBAGE TIL tutorial INDEX
I den sidste tutorial vi tilføjet en komponent for at tillade enheder at blive destrueret på kollision. Dette omgået den HealthComponent bruges af fjendtlige enheder, men nu kommer vi fuld cirkel og tilføje en HealthComponent til afspilleren, så det kan blive beskadiget af fjendens kugler. Her tilføjer vi den HealthComponent, og angive, at stykket har en indledende sundhed 5.
Kode
For spilleren at blive skudt vi nødt til at oprette en ny enhed skabelon.
Det er næsten en nøjagtig kopi af den EnemyBullet skabelonen, undtagen enhed type og kollision typer ændres for at identificere den som en kugle skud fra en fjende og kolliderer med afspilleren.
Kode
EnemyControllerComponent .as
Ligesom PlayerControllerComponent, som skaber en ny PlayerBullet enhed, når der er trykket på mellemrumstasten, vil EnemyControllerComponent tilfældigt oprette en ny EnemyBullet enhed.
timeToNextShot variabel bruges til at styre mængden af tid i mellem hver mulig affyring af en kugle, tælles ned til 0.
offentlige override funktion onTick (Tickrate: Number): void {//... timeToNextShot - = Tickrate; timeToNextShot = timeToNextShotNår timeToNextShot når 0 fjenden vil have en chance for at affyre en kugle. Den timeToNextShot nulstilles for at starte nedtællingen igen
if (timeToNextShot == 0) {timeToNextShot = timeBetweenShots;.Vi ønsker, at disse optagelser til at være tilfældig, så vi bruger chanceOfShot variabel med den tilfældige funktion at afgøre, om et skud bør tages. Følgende, hvis udsagn har en 1 i chanceOfShot chance for at være sande.
if (Math.round (Math.random () * chanceOfShot) == 0) {Skulle hvis udsagn er sandt en ny instans af EnemyBullet skabelonen er oprettet, placeret og hastigheden sat
Var bullet:. IEntity = TemplateManager.instance.instantiateEntity (bulletEntityName); hvis (= null kugle!) {var rumlig: Box2DSpatialComponent = bullet.lookupComponentByType (Box2DSpatialComponent) som Box2DSpatialComponent; spatial.position = nye punkt (position.x, position.y); spatial.linearVelocity = nye punkt (0, bulletSpeed); }}}}
Vi er nødt til at lave en lille ændring af PlayerControllerComponent at stoppe fjendens kugler banker afspilleren væk fra skærmen. Når to objekter kolliderer i en fysik-system, de ikke bare stoppe død - med mindre de kolliderer hoved på med lige kraft
Realiseringen af et Space Invaders klon med Trykknap - Main Menu
- Oprindelige form Evaluation
- Besked Basics For Window klasse Procedure
- Søg Forholdene i Sybase SQL Statements
- Dijkstra & amp; rsquo; s Algorithm
- Den skal vide i Database Design og MySQL Server
- Data Management (RDBMS)
- C ++ Skabeloner
- Konsol Ansøgning om Refleksion i C # 1.1 og 2.0 ( Dot Net )
- Anmeldelse af Best Iphone App til Email
- Target Cost Kontrakter - Agile programmering Methodology