Page 1 sur 1

Comment calculer ceci ?

Publié : lun. 14/févr./2005 14:06
par eRz0r
J'en reviens avec mon petit jeu de moto en 2D :)

J'avais demandé comment calculer une accélération, pour ça c'est ok ^^ et je remercie ceux qui m'on aidé.

Mais maintenant me voilà que je dois m'attaquer a une autre partie, les wheelings ! Sachant que j'ai 3 sprites, les 2 roues et le cadre de la moto (c'est un scoot mais c'est pareil).

Je n'ai vraimant aucune idée de comment calculer une rotation du cadre autour de la roue arrière :s

J'ai bien essayé avec la fonction rotate et déplacer les coordonnées x et y du cadre en même temps, mais ça foire carrement..

Donc si quelques pouvait-il m'aider ? J'accepte volontier :)

eRz

Publié : lun. 14/févr./2005 20:37
par Le Soldat Inconnu
tu voit ton scoot de coté ?

si c'est le cas, voilà la solution

Image

On fait tourner le vélo par rapport au centre de la roue arrière d'un angle a

Image

le centre du vélo passe à la position suivante (par rapport à la roue arrière)

XC2 = XC * cos(a) - YC * sin(a)
YC2 = XC * sin(a) + YC * cos(a)

Idem pour la roue avant

Publié : lun. 14/févr./2005 21:48
par Torp
J'ai toujours dis qu'on bon dessin valait mieux qu'un long discours... ;)

Publié : mar. 15/févr./2005 7:15
par Anonyme2
Régis t'habite quel coin :mrgreen:

Vous n'avez que des vélos du début du siècle :jesors: :wink:

Publié : mar. 15/févr./2005 8:53
par Frenchy Pilou
De l'utilité du "Savant Cosinus" 8)

Publié : mar. 15/févr./2005 15:49
par Le Soldat Inconnu
Mon parrain a des vélos d'avant 1900 (il fait la collection) :roll:

Publié : ven. 18/févr./2005 23:03
par eRz0r
Merci bcp ;)

eRz

Publié : ven. 18/févr./2005 23:09
par eRz0r
Euh derniere question les XR et YR ils deviennent quoi dans le calcule ? :s

eRz

Publié : sam. 19/févr./2005 0:20
par Le Soldat Inconnu
C'est le même type de calcul que pour le cadre :D

Bien sur, si tu as la roue avant et arrière à la même hauteur (donc si elle ont la même taille), YR vaut 0 ce qui simplie le calcul

XR2 = XR * cos(a) - YR * sin(a)
YR2 = XR * sin(a) + YR * cos(a)

et si YR = 0

XR2 = XR * cos(a)
YR2 = XR * sin(a)

Publié : lun. 14/mars/2005 19:57
par eRz0r
Erf je n'arrive vraimant pas a l'insérer dans mon jeu.

Le sprite scoot à les dimensions : 131*91
Le sprite scoot avec les roues donnent : 131*100

et le sprite ROUE est de : 40*40

sachat que mon sprite scoot est positionné à

sx.f=200
sy.f=650

que la roue de derriere est mise à :

sx.f-2
sy.f+61

que la roue de devant est mise à :

sx.f+100
sy.f+61



J'ai essayé ceci :

If KeyboardPushed(#PB_key_left)
sx.f+65 * Cos(1) - sy+50 * Sin(1)
sx.f+65 * Sin(1) + sy+50 * Cos(1)
EndIf

Mais ça deplace le sprite à toute vitesse à la place de lui faire effectuer une rotation :cry:

eRz

Publié : lun. 14/mars/2005 21:26
par Le Soldat Inconnu
arf, forcément, tu écrases les positions originales de la roue

et tu ne te bases pas correctement au niveau du repère.

d'abord, il faut positionner tes sprites par rapport à la roue arrière (pas par rapport au cadre)

Pour la moto toujours à l'horizontal

roue arrière
X = -2 + Position de la moto en X
Y = -61 + Position de la moto en Y

roue avant
X = 100 + Position de la moto en X
Y = -61 + Position de la moto en Y

Cadre
X = 0 + Position de la moto en X
Y = 0 + Position de la moto en Y

avec l'angle :
roue arrière (bouge pas)
X = -2 + Position de la moto en X
Y = -61 + Position de la moto en Y

roue avant
X = -2 + Position de la moto en X + 102 * cos(a) - 0 * sin(a)
Y = -61 + Position de la moto en Y + 102 * sin(a) + 0 * cos(a)

Cadre
X = -2 + Position de la moto en X + 2 * cos(a) - 61 * sin(a)
Y = 61 + Position de la moto en Y + 2 * sin(a) + 61 * cos(a)

j'espère ne pas avoir fais d'erreur dans les signes