Gestion du pavé directionnel

  • Introduction
  • Informations
Gestion du pavé directionnel Déplacer un objet avec le pavé directionnel n'est pas très difficile à gérer en AS3.
Et avec ce tutoriel cela n'aura plus de secrets pour vous.  
Netger
  • Auteur : Netger
  • Publication : 13 juil. 2008 20:46
  • Consultations : 2569
 

1. Déclaration des variables

Créez un nouveau document et ouvrez le panneau ActionScript.

Gestion du pavé directionnel en as3  image 1 Nous allons commencer par déclarer les variables globales de ce petit script.

Afin de posséder un objet à déplacer avec le pavé directionnel, je déclare un "Sprite" mais vous pouvez très bien utiliser autre chose (image, movieClip, ...)
Les 4 booléen déclarés ensuite permettront d'indiquer au script l'état des touches du pavé directionnel.

Notez les lignes suivantes dans le panneau AS :
Code-source actionscript
  1. var rectangle:Sprite = new Sprite();
  2.  
  3. var droite:Boolean = new Boolean ();
  4. var haut:Boolean = new Boolean ();
  5. var gauche:Boolean = new Boolean ();
  6. var bas:Boolean = new Boolean ();
 

2. Fonctions liées au déplacement

Nous allons maintenant écrire 3 fonctions qui permettront de gérer le déplacement de l'objet.

Gestion du pavé directionnel en as3  image 2 Dans la première fonction servira à modifier la position de l'objet en abscisse et en ordonnés (x et y) :
Code-source actionscript
  1. function Move() 
  2. {
  3. 	if (droite) rectangle.x++;
  4. 	if (haut) rectangle.y--;
  5. 	if (gauche) rectangle.x--;
  6. 	if (bas) rectangle.y++;
  7. }
 
Les 2 autres fonction permettront de déterminer l'état des touches du pavé directionnel (enfoncée ou relâchée) :
Code-source actionscript
  1. function toucheDown(evt:KeyboardEvent)
  2. {
  3. 	if (evt.keyCode == Keyboard.UP) haut=true;
  4. 	if (evt.keyCode == Keyboard.RIGHT) droite=true;
  5. 	if (evt.keyCode == Keyboard.LEFT) gauche=true;
  6. 	if (evt.keyCode == Keyboard.DOWN) bas=true;
  7. }
  8.  
  9. function toucheUp(evt:KeyboardEvent) 
  10. {
  11. 	if (evt.keyCode == Keyboard.UP) haut=false;
  12. 	if (evt.keyCode == Keyboard.RIGHT) droite=false;
  13. 	if (evt.keyCode == Keyboard.LEFT) gauche=false;
  14. 	if (evt.keyCode == Keyboard.DOWN) bas=false;
  15. }
 

3. Fonction d'initialisation du script

Gestion du pavé directionnel en as3  image 3 Dans le but de faire quelque chose de propre je déclare ici une fonction d'initialisation du script qui me permettra de définir les paramètres de l'objet ("Sprite") :
Code-source actionscript
  1. function initScript():void
  2. {
  3. 	rectangle.graphics.beginFill(0x0000FF); // Remplissage du rectangle avec du bleu
  4. 	rectangle.graphics.drawRect(100, 100, 50, 50); // Dessin du rectangle
  5. 	this.addChild(rectangle);
  6. 	stage.stageFocusRect = false; // Le rectangle jaune du focus est supprimé pour tous les objets
  7. 	stage.focus = rectangle; // Focus sur le rectangle pour qu'il puisse être actif
  8.  
  9. 	rectangle.addEventListener(KeyboardEvent.KEY_DOWN, toucheDown);
  10. 	rectangle.addEventListener(KeyboardEvent.KEY_UP, toucheUp);
  11.  
  12. 	setInterval(Move, 5); // Appel de la fonction Move()
  13. }
 

4. Lancer le script

Il ne reste plus qu'à lancer le script en appelant la fonction initScript() écrite au chapitre précédent :
Code-source actionscript
  1. initScript();
  2. stop();
 
Gestion du pavé directionnel en as3  image 4 Vous pouvez ensuite tester votre animation (Ctrl+Entrée).
Si la fluidité du déplacement de l'objet ne vous conviens pas modifiez le nombre d'images par secondes de l'animation ainsi que l'intervalle de temps entre chaque appel de la fonction Move() (second paramètre de la fonction setInterval())  
  • Rédiger un commentaire
  • Afficher les commentaires (0)
Vous devez être identifié pour poster un commentaire
Aucun commentaire