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

Skapa ett Flash plattformsspel med flixel och Flex - Enemies

spela demo Omdömen

ladda ner källkoden Omdömen

TUTORIAL INDEX Omdömen

För att ge spelaren något att göra kommer vi lägga till några fiender. Dessa fiender kommer att vara ganska dum, helt enkelt flytta till vänster och höger längst upp i block vi har lagt till. Även om detta är inte särskilt avancerad beteende, var det ganska vanligt med en massa gamla 8/16 bit plattform spel.

Omdömen

Först ut vi definierar en konstant som styr hur många fiender kommer att läggas till nivån i GameState klass

 skyddad static const ENEMY_COUNT: uint = 10; 

Då kan vi lägga till en FlxArray att hålla nya fiender Omdömen

 skyddade Var fiender:.. FlxArray = new FlxArray (); < p> Vi gör sedan ett anrop till den nya funktionen addEnemies i konstruktorn (efter att vi har lagt blocken till den nivå) katalog 
 public function GameState () {//... for (var j:.

uint = 0; j

addEnemies Funktionen kommer att placera fiender ovanpå blocken slumpmässigt hela nivån Men vi kan inte placera en fiende ovanpå något block, eftersom det finns en god chans att två block har varit. placeras i ovanpå varandra, vilket innebär att det finns inget utrymme för vår fiende Omdömen

 skyddade funktions addEnemies (): void {var enemyCount: uint = 0, för varje. (var block1: FlxBlock i this.levelBlocks) { var enemyStartX: Number = block1.x; var enemyStartY: Number = block1.y; var kolliderar: Boolean = false; för varje (var block2: 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 (block1! == block2 && (block2.overlapsPoint (xCollision, yCollision) || block2.overlapsPoint (xCollision, yCollision2) || block2.overlapsPoint (xCollision2, yCollision) || block2.overlapsPoint (xCollision2, yCollision2))) { kolliderar = true; bryta; }}

För att kontrollera detta vi slinga genom nivåblocken två gånger.

På så sätt kan vi testa varje block för en kollision i utrymmet ovanför det med alla andra blocket i nivån. Vi måste hitta ett block där ett 2x2-block området (så 16x16 pixlar) ovanför det övre vänstra hörnet är gratis (detta beror på våra fiender tar upp loppet av 4 block). Omdömen

För att testa detta behöver vi prov 4 punkter i rymden. Den första kommer att vara ett halvt kvarter upp och ett halvt kvarter över. Detta testar effektivt området markeras me

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