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.