jouer à la démo
télécharger le code SOURCE
index du tutoriel
Il y avait deux limitations avec le mobile blocs dans le dernier tutoriel. La première était que les blocs seraient glisser sous le joueur. Ceci peut être facilement fixé avec une seule ligne de code dans la fonction de collision MovingBlock
override public function collision (base: FlxCore):. Void {//.. si (contactFromTop) {if (Core.hitCeiling (ce )) {Core.y = this.y - Core.height; Core.last.y = Core.y; Core.x + = this.x - this.last.x; }}}
Ici, nous passons le joueur horizontalement par le même montant que le bloc lorsque le joueur est entré en collision avec le bloc d'en haut (il est debout sur elle).
La deuxième limitation est que le joueur serait transporté à travers les blocs dans des situations où il aurait été écrasés.
Pour corriger cela en place, nous devons effectuer une détection de collision sur le statique et le déplacement des blocs individuellement
Nous définissons d'abord un nouveau FlxArray dans la classe de GameState pour maintenir les blocs en mouvement
movingBlocks var protégées..: FlxArray = new FlxArray ();Toutes les instances de la classe MovingBlock sont ensuite placés dans le nouveau tableau
this.movingBlocks.add (this.add (nouvelle MovingBlock (32, 64, 0, 0 , LEVEL_DIMENSIONS >> 1, LEVEL_DIMENSIONS - BLOCK_DIMENSIONS * 3, BLOCK_DIMENSIONS * 2, BLOCK_DIMENSIONS * 2, TechTilesImage)));
Dans la fonction de mise à jour que nous faisons collisions sur les blocs en mouvement, puis les statiques. Notez que l'ordre des appels à la fonction FlxG collideArray sont importants: les blocs en mouvement doivent être traitées avant que les blocs statiques. Nous vérifions ensuite si le joueur est intégré dans l'un des blocs.
Si il est, il a été écrasé, et nous appelons la fonction playerSquash
public override function update (): void {super.update ();. FlxG.collideArray (movingBlocks, lecteur); FlxG.collideArray (levelBlocks, lecteur); FlxG.collideArrays (playerBullets, levelBlocks); FlxG.collideArrays (ennemis, levelBlocks); FlxG.overlapArrays (playerBullets, des ennemis, bulletHitEnemy); FlxG.overlapArray (movingBlocks, joueur, playerSquash); FlxG.overlapArray (levelBlocks, joueur, playerSquash); }Dans la fonction playerSquash nous tuons tout simplement le joueur.
Pour un jeu réel vous auriez probablement supprimer une vie des joueurs et redémarrer l'État dans cette fonction
Faire un jeu en 3D Avec Ogre - Ouverture d'un Window
- Spoofing appelant ID
- Normale liste d'arguments en Php
- Comment enseigner sciences informatiques Basics
- Java Variables
- Codage de base de classe de fenêtre Procedure
- Types de boutons dans Windows
- Exception Handling en C ++
- La logique booléenne et JavaScript Conditions
- Nouveaux développeurs Outils pour aider à Mobile Jeu Development
- Utilisation d'expressions régulières dans Perl