Animation du dart
Une barre de précision est un des outils
utilisés dans certains jeux pour simmuler un niveau de
dextérité ou d'agileté. Le but est de lancer
le dart lorsque la flèche pointe vers le 0.

|
Étape 1 :
Symbole clip du dart
Créer l'image du dart dans un symbole Clip
.
Étape 2 : Symbole
bouton du viseur
Créez l'image du bouton qui permet de viser vers
la cible.

Étape 3 : Code
du bouton
Le code du bouton doit déterminer la valeur de dx et de dy. c'est
deux valeurs seront utilisé plus tard pour déplacer le dart
vers la cible. On peut également à ce moment, déterminer
dans quel anneau tombera le dart et ainsi ajuster le pointage.
Calcul de la valeur PointDepart et PointFinal
- PointDepartX = coordonnée X du clip dart1 au début de
l'animation
- PointDepartY = coordonnée Y du clip dart1 au début de
l'animation
- PointFinalX = endroit où doit arrivé le dart, donc la
coordonnée X du bouton qui permet de viser vers la cible
- PointFinalY = endroit où doit arrivé le dart, donc la
coordonnée Y du bouton qui permet de viser vers la cible

Comment intégré le résultat
de la barre de précision avec la valeur du PointFinal?
Il suffit de changer la position de PointFinal en utilisant la
distance e tel illustré sur l'image ci-contre.
- e = 160-Fleche._y
- PointFinalX = BoutonViseur._x + e
- PointFinalY = BoutonViseur._y + e
|
 |
Puisque dx et dy représente le déplacement
du dart à chaque interval de temps, il faut diviser distanceX par
le nombre de mouvements voulue. Plus le nombre de déplacements
est grand, alors plus lente est l'animation.

- distanceX = PointDepartX - PointFinalX
- dx = distanceX / nombre de mouvements
- distanceY = PointDepartY - PointFinalY
- dy = distanceY / nombre de mouvements
Finalement comment déterminé dans quel cercle le
dart tombe?
En calculant la distance entre le centre de la cible et le dart,
on peut déterminer dans quel cercle le dart est tombé. |
 |
Pour calculer la valeur de c (distance entre le dart et le milieu de
la cible), on peut utiliser le théorème de pythagore.

Théorème : c = sqrt( a*a + b*b )
- a = 150 - dart1._y
- b = 150 - dart1._x
- c = sqrt( a*a + b*b )
Il suffit maintenant de déterminer l'anneau qui est
touché!
- si ( c<25 ) alors
- le dart est dans le cercle noir
- si ( c>25 et c<75 ) alors
- le dart est dans le cercle vert
- si ( c>75 et c<125 ) alors
- le dart est dans le cercle rouge
- si ( c>125 ) alors
- le dart est à l'extérieur de la cible
Étape
4 : Déplacer le dart vers la cible
- La commande dart1._x = dart1._x + dx , déplace le dart horizontalement
selon la valeur de dx
- Il faut faire la même chose pour la composante verticale
- La variable etape compte le nombre de déplacements
//Code
de l'image 5
if (etape<10)
{
dart1._x = dart1._x+dx;
dart1._y = dart1._y+dy;
etape= etape+1;
}
if (etape>=10) {
Mouse.show();
gotoAndStop(10);
} |

Le code de l'image 6 est semblable, il faut simplement ajouter
la commande gotoAndPlay(5); pour créer l'animation.
L'image 10 comporte un bouton qui permet de recommencer le jeu. |
|