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

Opprette en Flash plattformspill med Flixel og Flex - Enemies

en på en int er du effektivt å halvere sin verdi. Det er mer effektivt som ringer BLOCK_DIMENSIONS /2, og du kommer til å imponere alle vennene dine med en obskur drift.


Vi tester deretter området for neste kvartal opp.

< p>

Deretter gjentar vi prosessen en blokk til høyre.


I eksempelet ovenfor, vil blokken nederst på bildet ikke være egnet for en fiende plassering fordi det er en kollisjon med den andre testen. Dette setter kollisjonen flagget til sann, noe som betyr at vi ikke legge en fiende her.


 if (! Kolliderer && enemyStartX> 0 && enemyStartY> 0) {enemies.add (this.add (ny Enemy (enemyStartX , enemyStartY, block1.width))); ++ enemyCount; } If (enemyCount> = ENEMY_COUNT) break; }} 

Hvis rommet over blokken var klart vi deretter opprette en ny fiende, som er lagt både til GameState og til fiender samlingen. Vi øke den enemyCount telleren, og deretter enten plassere den neste fienden, eller hvis de har alle vært plassert bryte ut av loopen

 offentlige styringsfunksjon oppdatering (). Void {super.update (); FlxG.collideArray (levelBlocks, spiller); FlxG.

collideArrays (playerBullets, levelBlocks); FlxG.collideArrays (fiender, levelBlocks); FlxG.overlapArrays (playerBullets, fiender, bulletHitEnemy);}

Fiendene vil kollidere med nivå blokker, og med spillere kuler. I oppdateringen funksjonen tester vi for disse kollisjonene. For kulen /fienden kollisjon, setter vi bulletHitEnemy funksjon å bli kalt i tilfelle en kollisjon

 privat funksjon bulletHitEnemy (Bullet: FlxSprite, Bot: FlxSprite):. Void {Bullet.hurt 

(0); Bot.hurt

(1);}

I bulletHitEnemy funksjonen kaller vi det vondt funksjon både på kule og fienden.

Dette vil fjerne kulen fra nivået, og føre til at fienden til å lide noen skade. . Hvis fienden lider nok skade det vil da bli drept

Neste vi må opprette Enemy klassen

 pakke {import org.flixel *..; public class Enemy strekker FlxSprite {[Bygg (kilde = "../media /enemy.png")] beskyttet Var EnemyImage: Klasse; [Bygg (kilde = "../media /enemygibs.

png")] beskyttet Var EnemyGibsImage: Klasse; beskyttet statisk konst ENEMY_SPEED: Number = 20; beskyttet statisk konst ENEMY_HEALTH: int = 2;

Til å begynne med vi legge noen bilder, en for selve fienden, og en for de gibs som vil fly når fienden er drept. Vi angir også noen konst

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