- une variable de direction (_global.directionHeros) qui indique la direction du Héros (et permet d'afficher la bonne frame du Clip sprite_hero dont je vous parlais dans mon billet précédent).
- une variable de déplacement (_global.deplacementHéros) qui indique le nombre de pixels à parcourir avant que le Héros n'ait fini son déplacement.
Pour les extraits de code ci-dessous, je ne vais considérer que le bouton BAS :
directionVerticale = Key.isDown(Key.DOWN) - Key.isDown(Key.UP); //si on appuie sur BAS, directionVerticale a pour valeur 1 //si on appuie sur HAUT, directionVerticale a pour valeur -1 //si on appuie sur BAS et HAUT, directionVerticale a pour valeur 0 directionHorizontale = Key.isDown(Key.RIGHT) - Key.isDown(Key.LEFT); // même principe pour GAUCHE et DROITE if (directionVerticale == 1 && directionHorizontale ==0){ // Le joueur a seulement appuyé sur BAS if (_global.deplacementHeros ==0){ // la pression sur cette touche n'a d'effet que si le Héros n'est pas déjà en train de se déplacer _global.directionHeros = 1; if (_global.donjon[_global.positionHeros[0]][_global.positionHeros[1]+1] ==1){ // la tile en bas du Héros est de type "dalle" : le déplacement a lieu _global.deplacementHeros += 16; _global.positionHeros[1]++; } } } |
Si la variable déplacement n'est pas nulle, alors à chaque frame de la timeline le Héros se déplace à une vitesse que j'ai fixée à 2 pixels par frame : il faut donc 8 frames pour que le Héros passe d'une tile à l'autre, ce qui correspond à 0,32 secondes (le jeu tourne à 25 frames par seconde).
if (_global.deplacementHeros > 0){ // le Héros de déplace if (_global.directionHeros == 1){ // Le Héros se déplace vers le BAS hero._y += _global.vitesseHeros; _global.deplacementHeros -= _global.vitesseHeros; } hero.gotoAndStop(_global.elementActuel * 10 + _global.directionHeros + 4); //on affiche l'animation "déplacement vers le bas" } else { // déplacement nul : le Héros reprend une position statique hero.gotoAndStop(_global.elementActuel * 10 + _global.directionHeros); } |
Ça y est, j'ai donc un personnage entièrement contrôlable au clavier qui se déplace dans le donjon sans passer à travers les murs !
Prochaine étape : Ajouter des monstres dans le Donjon...
Aucun commentaire:
Enregistrer un commentaire