2009-10-19 11 views
1

Ceci est pour un jeu dans un projet AS3 flash uniquement. Le joueur contrôle un personnage avec un pistolet. En cliquant sur l'écran, le pistolet tire un missile dans un arc au point cliqué.Comment animer un objet d'affichage dans un arc en AS3?

Quel est le meilleur moyen de calculer les coordonnées x et y du missile pour chaque trame?

+0

ce n'est pas vraiment une réponse mais peut-être jeter un oeil à http://www.dl.ket.org/physicshon/chapters/03_1-3/. Si vous descendez vers le bas est une activité flash enseigner le mouvement du projectile – Allan

Répondre

5

Eh bien, un arc est un morceau de cercle. Les formules générales d'un cercle sont

x = r * cos(a) + cx 
y = r * sin(a) + cy 

Lorsque r est le rayon du cercle, a est l'angle le long du cercle (en radians), et cx et cy sont les coordonnées du centre du cercle.

Donc, pour chaque image, vous devez incrémenter l'angle (a) et recalculer la position avec ces formules.

L'astuce consiste à déterminer le rayon et les points centraux appropriés. Vous pourriez probablement trouver un algorithme qui trouverait un point central basé sur un rayon fixe. Edit: Pour obtenir la même vitesse à différents rayons.

Pour obtenir la vitesse (pixels/sec) de vitesse angulaire (rad/s)

v = Δa * r 

Donc, si nous prenons une v, puis Δa = v/r où v est une constante et r est le rayon du cercle.

+0

Comment obtenez-vous une vitesse constante avec différentes distances. Comme j'augmente l'angle à un taux constant, le missile accélère plus il est loin? –

+0

... ça ne devrait pas faire ça ... Êtes-vous sûr que votre angle augmente constamment? et que votre angle est la seule chose qui change dans le code? –

+0

Si le diamètre du cercle (distance) est plus grand, le missile ne doit-il pas se déplacer plus loin sur la circonférence pour chaque incrément d'angle? –

2

Je pense que les missiles devraient voler en projectile au lieu d'un chemin d'arc ...

Si vous vraiment avoir un mouvement réaliste, étudier some physic equations.

Si vous voulez simplement avoir un mouvement simple et de style cartoon, utilisez bezier/bezierThrough de TweenMax sera extrêmement facile. Voir les exemples dans its plug-in explorer.


Mise à jour: Pour chemin simple tweening, Grape Animation Library semble très bien aussi!