*   >> Lecture Éducation Articles >> science >> la programmation

Création d'un jeu de plateforme flash avec Flixel et Flex - Enemies

jouer à la démo

télécharger le code SOURCE

index du tutoriel

Pour donner au joueur quelque chose à faire nous allons ajouter quelques ennemis. Ces ennemis seront tout à fait muet, simplement en déplaçant gauche et à droite dans la partie supérieure des blocs que nous avons ajoutées. Même si ce comportement est particulièrement avancée, il était assez commun avec beaucoup de vieux jeux de plateforme 8/16 bits.


Première place, nous définissons une constante qui contrôle combien d'ennemis sera ajoutée au niveau de la classe GameState

 protégée const ENEMY_COUNT statique: uint = 10; 

Ensuite, nous ajoutons un FlxArray de tenir les nouveaux ennemis

 protégées ennemis var:.. FlxArray = new FlxArray (); < p> Nous faisons ensuite un appel aux nouvelles addEnemies de fonction dans le constructeur (après nous avons ajouté les blocs au niveau) 

 GameState public function () {//... for (var j:.

uint = 0; j

La fonction addEnemies placera les ennemis sur le dessus des blocs de manière aléatoire dans le niveau Cependant, nous ne pouvons pas placer un ennemi au-dessus de tout bloc, car il ya une bonne chance que deux blocs ont été. placé dans dessus de l'autre, ce qui signifie qu'il n'y a pas de place pour notre ennemi

 addEnemies protégées de fonction (): void {var enemyCount: uint = 0; pour chacun. (var block1: FlxBlock dans this.levelBlocks) { var enemyStartX: Number = block1.x; var enemyStartY: Number = block1.

y; var collision: Boolean = false; pour chaque (var block2: FlxBlock dans 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; si (block1! == block2 && (block2.overlapsPoint (xCollision, yCollision) || block2.overlapsPoint (xCollision, yCollision2) || block2.overlapsPoint (xCollision2, yCollision) || block2.

overlapsPoint (xCollision2, yCollision2))) { heurte = true; temps de pause; }}

Pour vérifier cette boucle de nous à travers les blocs de niveau deux fois. De cette façon, nous pouvons tester chaque bloc pour une collision dans l'espace au-dessus de tout autre bloc dans le niveau. Nous devons trouver un bloc où une zone de bloc de 2x2 (pixels afin 16x16) au-dessus du coin supérieur gauche est libre (ce qui est parce que nos ennemis prennent l'espace de 4 blocs).


Pour t

Page   <<       [1] [2] [3] [4] >>
Copyright © 2008 - 2016 Lecture Éducation Articles,https://lecture.nmjjxx.com All rights reserved.