Bon j'ai un petit soucis pour diriger mes sprites a 360°, je ne sais pas quoi mettre dans cos et sin
dans Regate j'ai placé 0.001 et j'incremente de +0.001 ou -0.001 pour faire tourner, mais bon je ne sais jamais dans quelel direction pointe le bateau.
En gros je voudrais faire un test de ce genre :
for i=1 to 360
delay 500
lineXY (300,300,300+50*cos(i),300+50*sin(i))
next i
J'ai besoin de savoir le degré (entre 0 et 360) afin d'afficher le bon sprite.
Comprenez vous ma demande deja ? LOL
déplacements 360° via COS SIN
Re: déplacements 360° via COS SIN
Le principe tu dois le connaitre :

ANGLE est en degrés , tu n'as plus qu'a jouer avec cette variable.NewX/Y = X/Y + Distance * Cos/Sin ( ANGLE * PI / 180 )

Re: déplacements 360° via COS SIN
G-Rom a raison. Tu dois partir de ton angle. Un tour complet représente 2*PI radians (l'unité native de cos et sin), ou 360° (avec la conversion de G-ROM).
Si tu as 10 images, la première image est à l'angle 0, la 5ème à PI (ou 180°), la dernière à 2*PI (ou 360°). C'est une simple règle de trois!
Donc tu multiplies ton angle par ton nombre d'images total, et tu divises par 2*PI (ou 360°) pour avoir le numéro de l'image.
A noter deux choses :
L'angle peut dépasser 2*PI radians (ou 360°) ; tu dois soit faire une condition, soit un modulo afin de rester dans l'intervalle [0 ; 2*PI[ (ou [0 ; 360[ )
La direction indiquée devrait correspondre à l'image sur un certain angle avant et après. Par exemple, si ton vaisseau pointe vers le haut (0), que tu as dix images, cette image devrait être affichée sur l'intervalle ]2*PI - (1/20 * 2*pi) ; 2*pi]U[0 ; (1/20 * 2*pi)[. Il faut donc que tu fasses une correction avant ou après tes calculs, de façon à changer d'image au bon moment. (le 1/20 correspond à la moitié de l'angle pendant lequel est affiché une image, une moitié d'angle avant, une moitié d'angle après. Si tu avais 30 images, ce serait 1/60).
Si tu as 10 images, la première image est à l'angle 0, la 5ème à PI (ou 180°), la dernière à 2*PI (ou 360°). C'est une simple règle de trois!
Donc tu multiplies ton angle par ton nombre d'images total, et tu divises par 2*PI (ou 360°) pour avoir le numéro de l'image.
A noter deux choses :
L'angle peut dépasser 2*PI radians (ou 360°) ; tu dois soit faire une condition, soit un modulo afin de rester dans l'intervalle [0 ; 2*PI[ (ou [0 ; 360[ )
La direction indiquée devrait correspondre à l'image sur un certain angle avant et après. Par exemple, si ton vaisseau pointe vers le haut (0), que tu as dix images, cette image devrait être affichée sur l'intervalle ]2*PI - (1/20 * 2*pi) ; 2*pi]U[0 ; (1/20 * 2*pi)[. Il faut donc que tu fasses une correction avant ou après tes calculs, de façon à changer d'image au bon moment. (le 1/20 correspond à la moitié de l'angle pendant lequel est affiché une image, une moitié d'angle avant, une moitié d'angle après. Si tu avais 30 images, ce serait 1/60).
Re: déplacements 360° via COS SIN
merci les gars, que du bonheur votre assistance
Re: déplacements 360° via COS SIN
Salut @drfloyd
,
voici deux Macros pour ça:
bon projet 

voici deux Macros pour ça:
Code : Tout sélectionner
Macro NEW_X(x, Angle, Distance)
((x) + Cos((Angle)*#PI/180) * (Distance))
EndMacro
Macro NEW_Y(y, Angle, Distance)
((y) - Sin((Angle)*#PI/180) * (Distance))
EndMacro
