VEF Blog

Titre du blog : Le logiciel Flash avant tout...
Auteur : flashcbil
Date de création : 04-03-2005
 
posté le 06-08-2005 à 23:12:32

Deplacer un personnage : Partie 2

Dans la partie 2 de ce tuto, nous allons creer le mouvement du smiley.........ce n'est que du code ! Alors ouvrez bien les yeux !

D'abord je vous propose de prendre la source de la partie 1 ICI

Commençons !

Etape 1

Sur l'animation principal, creer un nouveau calque que l'on nommera "Actions".
Cliquez une fois sur l'image 1 de ce calque dans le scenario.
Puis entrez le code suivant.

_root.pas=10;

photo
photo

EXPLICATION :

on créé une variable qui s'appelle "pas". cette variable prend pour valeur 10. _root signifie que c'est une variable de premier niveau (on pourrais l'appelé variable globale)....ici on pourrais ommettre le _root puisque nous ecrivons deja ce code au premier niveau : dans l'animation principale.

Lorsque nous voudrons changer la vitesse, il nous suffira de changer la valeur de la variable _root.pas.

Etape 2

Le code suivant est a mettre sur le clip "Perso". cliquez-donc une fois sur ce clip, puis dans le champ action entrez le code suivant :

onClipEvent
(keyDown) //si une touche est pressé
{

switch(Key.getCode()) //on recupere la valeur de la derniere touche pressé
{
case Key.RIGHT: //si c la touche "Fleche DROITE"
this._x+=_root.pas; //on augmente la position horizontale
this.gotoAndStop(2); //on affiche l'image 2 du clip "Perso" (image position droite) et de nom d'occurence "smiley"
break; //on sort du switch
case Key.LEFT: //si c la touche "Fleche GAUCHE"
this._x-=_root.pas; //on diminue la position horizontale
this.gotoAndStop(3); //on affiche l'image 3 du clip "Perso" et de nom d'occurence "smiley"
break; //on sort du switch
case Key.UP: //si c la touche "Fleche HAUT"
this._y-=_root.pas; //on diminue la position verticale
this.gotoAndStop(4); //on affiche l'image 4 du clip "Perso" et de nom d'occurence "smiley"
break; //on sort du switch
case Key.DOWN: //si c la touche "Fleche BAS"
this._y+=_root.pas; //on augmente la position verticale
this.gotoAndStop(1); //on affiche l'image 1 du clip "Perso" et de nom d'occurence "smiley"
break; //on sort du switch
default: //si ce n'est pas une de ces touches qui est pressé
//on ne fait rien !
}//fin du switch
}

EXPLICATION :

// indique que ce sont des commentaires, donc qu'il ne sera pas interpreté comme un code (pour mettre des commentaires sur plusieurs lignes :
/* --------Commentaire -------*/ comme en langage C/C++)

onClipEvent() sert a declenché des actions lorsque l'evenement entre parenthese du clip est realisé. (pour les boutons, le "declencheur" est 'on')
KeyDown signale l'evenement d'une touche pressée.
Il faut donc ensuite verifier quel touche a été préssé....c le code Key.getCode() qui nous le dit.


Le "switch" regarde la valeur du Key.getCode() et la compare a la valeur qui est a coté d'un "case". si les deux valeurs sont egales, les actions apres le case sont executées, sinon ce sont les actions apres "default". (bien sur il compare avec tous les case avant !). Le break signale qu'il faut sortir du switch sinon il continuerai d'executé les actions des case qui suivent meme si ils ne sont pas egaux a Key.getCode().


Key.RIGHT donne la valeur de la touche Fleche Droite........pareil pour les autres (.......LEFT, .......UP,.......DOWN). Ce qui rend possible la comparaison avec Key.getCode().


this signale que c'est le clip sur lequel on a mis le code (donc le smiley).
Pour le code this._x+=_root.pas, on ajoute 10 (car on a mis 10 a la variable _root.pas dans l'etape 1) au coordonnee x (donc horizontale) du smiley. Il se deplace donc de 10 pixel vers la droite. (vers la gauche il aurait fallu soustraire 10). Si l'on avait ecrit le code ailleurs, il aurait fallu ecrire smiley._x+=_root.pas, smiley etant le nom d'occurrence de notre clip.


Pourquoi on ajoute 10 pour aller vers la droit et pas l'inverse ? tout simplement parce que notre repere est comme sur l'image ci-dessous : l'origine est au coin superieur gauche de l'animation.

photo


this.gotoAndStop(2) indique que l'on va et que l'on s'arrete a l'image 2du scenario du clip de nom d'occurrence "smiley". L'image 2 est celle qui comporte le dessin du smiley lorsque l'on avance vers la droite.



Testez l'animation !
Normalement, votre smiley devrait bouger lorsque vous appuyez sur les touches directionnelles.

photo




Voila, c fini pour la partie 2 !