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

Skapa ett Flash plattformsspel med flixel och Flex - Enemies

d rött nedan. Omdömen

Om du inte är bekant med det, är det >> operatören kallas lite skift. Den faktiska detaljerna i denna operatör är inte viktigt; allt du behöver veta är att genom att ringa >> 1 på en int du faktiskt halvera sitt värde. Det är mer effektivt att ringa BLOCK_DIMENSIONS /2, och du får imponera alla dina vänner med en obskyr verksamhet. Omdömen

Omdömen

Vi testar sedan den del av nästa kvarter upp. Omdömen < p>

Sedan vi upprepa processen ett block till höger.



I exemplet ovan, skulle blocket vid botten av bilden inte är lämpligt för en fiende placering eftersom det finns en kollision med det andra testet. Detta ställer kollisions flaggan till true, vilket betyder att vi inte lägga en fiende här. Omdömen

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

Om utrymmet ovanför blocket var klart vi sedan skapa en ny fiende, som tillsätts både till GameState och fiender samlingen.

Vi öka den enemyCount disken och sedan antingen placera nästa fienden, eller om de har alla varit placerad bryta ut ur loopen Omdömen

 public override uppdateringsfunktionen ():. Void {super.update (); FlxG.collideArray (levelBlocks, spelare); FlxG.collideArrays (playerBullets, levelBlocks); FlxG.collideArrays (fiender, levelBlocks); FlxG.overlapArrays (playerBullets, fiender, bulletHitEnemy);} 

Fienderna kommer att kollidera med nivåblock, och med spelarnas kulor. I uppdateringsfunktionen testar vi för dessa kollisioner.

För kulan /fienden kollision, vi sätter bulletHitEnemy funktion som ska kallas i händelse av en kollision Omdömen

 private function bulletHitEnemy (Bullet: FlxSprite, Bot: FlxSprite):. Void {Bullet.hurt 

(0); Bot.hurt

(1);}

I bulletHitEnemy funktionen vi kallar ont funktionen både kulan och fienden. Detta kommer att ta bort kulan från den nivå, och orsaka fienden att lida någon skada. . Om fienden lider nog skada kommer det då bli dödad Omdömen

Nästa vi behöver för att skapa Enemy klassen Omdömen

 package {import org.flixel *..

public class Enemy utökar FlxSprite {[Bädda (source = "../media /enemy.png")] skyddad var EnemyImage: Klass; [Embed (source = "../media /enemygibs.png")] skyddad var EnemyGibsImage: Klass; skyddad static const ENEMY_SPEED: Number = 20; skyddad static const ENEMY_HEALTH: int = 2;

Till att börja med vi bädda vissa bild

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