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 >>
Oprettelse af en Flash-platform spil med flixel og Flex - Lyd og Music
- Awesome Tastatur Blinkende Trick
- Kort Operationer i C ++
- Afledt Klasse-erklæringen og adgang Projekteringsvejledning i C ++
- Brug Javascript String Regelmæssig Expressions
- Referentiel integritet i databasen
- Konsol Application hjælp Konstruktioner ( struct søgeord) i C # 1.1 og 2.0 ( D…
- Enkel Windows (og måske andre styresystemer) Konsol Color Randomizer (C ++)
- Pseudo Classes
- Opnåelse Klarhed For Team Work Med Sharepoint Web Parts
- C ++ objektorienteret programmering