#1
Et ensuite, au moment de bouger le perso :
Mais pour les rotations sur l'axe des Z, j'ai un probleme. En effet sela marche quand je n'ai fait aucune rotation sur l'axe Y , mais quand il y a déja eu rotation, le perso ne bouge pas dans le bon sens
De plus, je ne sais pas quoi mettre a la place de
pour cette rotation sur l'axe Z
Voila, je ne suis pas sur d'avoir été bien explicite.
Merci et au revoir
03-12-2006 08:57:39
- Exedor
- Membres
- Date d'inscription:
- Messages: 10
- IP: 83.157.237.144
- Courriel
Bonjour, j'ai un probleme dans les rotations avec irrlicht.
Pour faire une rotation sur l'axe Y, je n'ai pas de probleme ; je fait
a.Y -= 0.3f;
nodeSydney->setRotation(a);Et ensuite, au moment de bouger le perso :
PosSydney.X += cos(SydneyRot.Y * 3.14159265384 /180 )*0.3f;
PosSydney.Z -= sin(SydneyRot.Y * 3.14159265384 /180 )*0.3f;Mais pour les rotations sur l'axe des Z, j'ai un probleme. En effet sela marche quand je n'ai fait aucune rotation sur l'axe Y , mais quand il y a déja eu rotation, le perso ne bouge pas dans le bon sens
De plus, je ne sais pas quoi mettre a la place de
PosSydney.X += cos(SydneyRot.Y * 3.14159265384 /180 )*0.3f;
PosSydney.Z -= sin(SydneyRot.Y * 3.14159265384 /180 )*0.3f;pour cette rotation sur l'axe Z
Voila, je ne suis pas sur d'avoir été bien explicite.
Merci et au revoir
Hors ligne
#2
Visitez Arcis : MMORPG ammateur utilisant irrlicht !
Etudiant ingénieur, maitrise C++, connaissances python & php.
06-12-2006 12:40:19
- Dekron
- Membres
- Date d'inscription:
- Messages: 46
- IP: 194.167.30.129
- Courriel Site web
hummm ... je ne connais pas ces fonction la, mais je me demande ... est ce que le référentiel se replace par rapport au personnage a la fin de la première rotation ?
Quand ca va dans le mauvais sens, ca va dans lequel ( en fait, peux tu etre plus précis ? ) ?
Visitez Arcis : MMORPG ammateur utilisant irrlicht !
Etudiant ingénieur, maitrise C++, connaissances python & php.
Hors ligne
#3
Trouvée sur le forum d'irrlicht
Merci quand meme
( je croyais pas que c'était si compliqué pour une simple rotation )
07-12-2006 19:51:49
- Exedor
- Membres
- Date d'inscription:
- Messages: 10
- IP: 83.156.195.22
- Courriel
Hé ben j'ai réussit a résoudre ce probleme grace a cette fonction :
void rotate(vector3df rp) //rp is angle to turn, pitch or roll
{
vector3df r = nodeSydney->getRotation(); //get current rotation (euler)
matrix4 m;
matrix4 mp;
m.setRotationDegrees(r); //set matrix to current rotation
mp.setRotationDegrees(rp); //set second matrix to rotation to add
m *= mp; //multipy them
r = m.getRotationDegrees(); //get rotation vector from matrix (euler)
nodeSydney->setRotation(r); //rotate node
}Trouvée sur le forum d'irrlicht
Merci quand meme
( je croyais pas que c'était si compliqué pour une simple rotation )
Hors ligne



