salut, je fais de l'actionscript depuis peu et je me suis lancé dans la realisation d'un script qui permet de faire simplement bouger une fleche vue de dessus, et je veux lui donner une inertie, genre spatiale...
en gros: j'avance dans une direction
j'arrete d'accelerer: la fleche continue
je pivote: la trajectoire reste la meme mais la fleche pivote bien
j'accelere alors que je ne suis plus dans l'axe:
c'est la que ça se complique... la fleche va donc décrire une courbe, la ça va encore a peu pres... mais quand je lache la fleche, c'est a ce moment la que je definis la trajectoire donnée par l'inertie, mais a ce moment la il faut que l'angle de cette traj soit entre celle de l'inertie et celle de l'acceleration...
LE SOUCIS: j'ai trouvé une formule adequate mais le vrai probleme c'est que flash ne compte pas 0-360°, mais -180-0-180° ... du coup mon script fonctionne a 50% car dans certaines positions ça marche nickel, et dans d'autres la fleche part a l'opposé de la où elle devrait
voila le pti bout de script en question, je rappelle que ça se produit des que je lache la fleche haut, c'est a dire quand j'arrete de soumettre la fleche a l'acceleration:
Code :
- this.temp_direc = ((this.temp_direc-this.direc)/2)+this.direc;
|
temp_direc est la direction de l'inertie, et direc celle de la fleche!
le soucis est donc le fait que ça passe par des angles negatifs... pourtant sur papier, le calcule fonctionne aussi bien en positif qu'en negatif
---------------
La superstition c'est comme ceux qui réparent les fauteuils, il faut que le bois qu'ils rajoutent soit à peu près comme l'autre bois sinon ça se voit trop.