*   >> Læs Uddannelse artikler >> science >> programming

Oprettelse af en Flash-platform spil med flixel og Flex - Enemies

afspille DEMO

hente kildekoden

TUTORIAL INDEX

For at give spilleren noget at gøre, vi vil tilføje nogle fjender. Disse fjender vil være helt dum, blot at flytte til venstre og højre på tværs af toppen af ​​blokkene, vi har tilføjet. Selvom dette ikke er særlig avanceret adfærd, det var temmelig almindeligt med en masse gamle 8/16 bit platform spil.


Første op vi definerer en konstant, der styrer, hvor mange fjender vil blive tilføjet til niveauet i GameState klasse

 beskyttet statisk const ENEMY_COUNT: uint = 10; 

Så tilføjer vi en FlxArray til at holde de nye fjender

 beskyttede Var fjender:.. FlxArray = ny FlxArray (); < p> Vi derefter foretage et opkald til den nye funktion addEnemies i konstruktøren (efter at vi har tilføjet blokkene til det niveau) 

 offentlig funktion GameState () {//... for (var j:.

uint = 0; j

addEnemies Funktionen vil placere fjender oven på blokkene tilfældigt hele niveauet Men vi kan ikke placere en fjende ovenpå nogen blok, fordi der er en god chance for, at to blokke har været. placeret i toppen af ​​hinanden, betyder, at der ikke er plads til vores fjende

 beskyttede funktion addEnemies (): void {var enemyCount: uint = 0; for hver. (var blok1: FlxBlock i this.levelBlocks) { Var enemyStartX: Antal = block1.x; Var enemyStartY: Antal = block1.y; Var kolliderer: Boolean = false; for hver (var blok2: 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 (blok1! == blok2 && (block2.overlapsPoint (xCollision, yCollision) || block2.overlapsPoint (xCollision, yCollision2) || block2.overlapsPoint (xCollision2, yCollision) || block2.overlapsPoint (xCollision2, yCollision2))) { kolliderer = true; pause; }}

For at kontrollere dette, vi sløjfe gennem blokerer niveau to gange.

På den måde kan vi teste hver blok for en kollision i rummet over det med hver anden blok i niveau. Vi er nødt til at finde en blok, hvor en 2x2 blok område (så 16x16 pixels) over øverste venstre hjørne er gratis (dette er fordi vores fjender fylder rummet af 4 blokke).

For at teste dette har vi brug for test 4 punkter i rummet. Den første vil være en halv blok op, og en halv blok på tværs. Denne effektivt tester området fremhævet med rødt nedenfor.

Hvis du ikke er fortrolig med det, er det >> operatør kaldes lidt skift.

De faktiske detaljer om denne operatør ikke er vigtige; alt du behøver at vide er, at ved at kalde >>

Page   <<       [1] [2] [3] [4] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.