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

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

ester cela, nous devons test de 4 points dans l'espace. Le premier sera un demi-bloc, et un demi-bloc travers. Cela permet de tester efficacement la zone surlignée en rouge ci-dessous.

Si vous n'êtes pas familier avec elle, l'opérateur >> est appelé un décalage de bits. Les détails réels de cet opérateur ne sont pas importants; tout ce que vous devez savoir est que en appelant >> 1 sur un int vous êtes effectivement la réduction de moitié de sa valeur.

Il est plus efficace que l'appel BLOCK_DIMENSIONS /2, et vous obtenez pour impressionner tous vos amis avec une opération obscure.


Nous testons ensuite la zone du bloc supérieur.

< p>

Ensuite, nous répétons le processus un bloc vers la droite.


Dans l'exemple ci-dessus, le bloc en bas de l'image ne serait pas approprié pour un le placement de l'ennemi parce qu'il ya une collision avec le deuxième test. Ceci définit la collision indicateur sur true, ce qui signifie que nous ne ajoutons pas un ennemi ici.


 if (! Heurte && enemyStartX> 0 && enemyStartY> 0) {enemies.add (this.add (nouvel ennemi (enemyStartX , enemyStartY, block1.width))); ++ enemyCount; } If (enemyCount> = ENEMY_COUNT) pause; }} 

Si l'espace au-dessus du bloc était clair que nous créons alors un nouvel ennemi, qui est ajoutée à la fois pour l'GameState et à la collecte des ennemis. Nous incrémenter le compteur de enemyCount, et ensuite, soit placer le prochain ennemi, ou si ils ont tous été placés pause hors de la boucle

 public override function update ():. Void {super.update (); FlxG.

collideArray (levelBlocks, lecteur); FlxG.collideArrays (playerBullets, levelBlocks); FlxG.collideArrays (ennemis, levelBlocks); FlxG.overlapArrays (playerBullets, ennemis, bulletHitEnemy);}

Les ennemis vont entrer en collision avec les blocs de niveau, et avec les joueurs balles. Dans la fonction de mise à jour, nous testons pour ces collisions. Pour la collision balle /ennemi, nous avons mis la fonction de bulletHitEnemy d'être appelé en cas de collision

 privée fonction bulletHitEnemy (Bullet: FlxSprite, Bot: FlxSprite):. Void {Bullet.hurt 

(0); Bot.

hurt

(1);}

Dans la fonction bulletHitEnemy nous appelons la fonction de mal à la fois sur la balle et l'ennemi. Cela permettra d'éliminer la balle à partir du niveau, et provoquer l'ennemi à souffrir quelques dommages. . Si l'ennemi souffre assez de dégâts, il sera ensuite tué

Ensuite, nous devons créer la clas

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