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

Opprette en Flash plattformspill med Flixel og Flex - Enemies

spille demoen

laste ned kildekoden

TUTORIAL INDEX

Å gi spilleren noe å gjøre vil vi legge til noen fiender. Disse fiendene vil være ganske dum, bare flytte seg til venstre og rett over toppen av blokkene vi har lagt til. Selv om dette ikke er spesielt avansert oppførsel, var det ganske vanlig med en masse gamle 8/16 bits plattform spill.


Først opp definerer vi en konstant som styrer hvor mange fiender vil bli lagt til nivået i GameState klasse

 beskyttet statisk konst ENEMY_COUNT: uint = 10; 

Deretter legger vi en FlxArray å holde de nye fiender

 beskyttede Var fiender:.. FlxArray = new FlxArray (); < p> Vi deretter ringe til de nye funksjons addEnemies i konstruktøren (etter at vi har lagt blokkene til nivået) 

 offentlig funksjon GameState () {//... for (var j.

uint = 0; j

addEnemies funksjonen vil plassere fiender på toppen av blokkene tilfeldig gjennom nivået Men vi kan ikke plassere en fiende på toppen av noen blokk, fordi det er en god sjanse for at to kvartaler har vært. plassert i toppen av hverandre, noe som betyr at det ikke er rom for vår fiende

 beskyttede funksjons addEnemies (): void {var enemyCount: uint = 0, for hver. (var block1: FlxBlock i this.levelBlocks) { Var enemyStartX: Number = block1.x; Var enemyStartY: Number = block1.y; Var kolliderer: Boolean = false; for hver (var blokk2: FlxBlock i this.

levelBlocks) {var xCollision: int = enemyStartX + (BLOCK_DIMENSIONS >> 1); Var xCollision2: int = xCollision + BLOCK_DIMENSIONS; Var yCollision: int = enemyStartY - (BLOCK_DIMENSIONS >> 1); Var yCollision2: int = yCollision - BLOCK_DIMENSIONS; if (blokk1! == blokk2 && (block2.overlapsPoint (xCollision, yCollision) || block2.overlapsPoint (xCollision, yCollision2) || block2.overlapsPoint (xCollision2, yCollision) || block2.overlapsPoint (xCollision2, yCollision2))) { kolliderer = true; gå i stykker; }}

For å sjekke dette vi sløyfe gjennom nivå blokkene to ganger.

På denne måten vi kan teste hver blokk for en kollisjon i rommet over den med alle andre blokk i nivået. Vi må finne en blokk hvor en 2x2 blokk område (slik 16x16 piksler) over øvre venstre hjørne er gratis (dette er fordi våre fiender tar opp plass av 4 blokker).

For å teste dette må vi test 4 punkter i rommet. Den første vil være en halv blokk opp, og et halvt kvartal over. Dette tester effektivt området markert i rødt nedenfor.

Hvis du ikke er kjent med det, er det >> operatør kalles litt skift.

Den faktiske detaljene i denne operatøren er ikke viktig; alt du trenger å vite er at ved å kalle >>

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