Historique des modifications - Message

Message #4228

Sujet: Problème de rotation/déplacement


Type Date Auteur Contenu
Création du message 11-06-2008 07:51:52 dark calculator
Salut,
La réponse se trouve plus dans un cours de math qu'autre chose. En effet les vecteurs de positions et de rotation sont absolues. Donc quand tu augmente z augmente la profondeur de ton personnage par rapport à l'origine du repère, il ne tient pas conte de la rotation qui a été appliqué à ton model. C'est à dire que si tu tourne ton perso de 30° quand il va avancer se serat sur une droite qui fait 30° par rapport à l'axe des z et non sur l'axe des z.
C'est à dire qu'il te faut faire de la trigonométrie.
Tu dois faire quelque chose comme ca(a confirmer car je n'est jamais vraiment tester) :
        if(move == forward)
        {
            v.X += sin(vector.Y);
            v.Z += cos(vector.Y);
        }
        else if(move == backward)
        {
            v.X += sin(vector.Y + 180);
            v.Z += cos(vector.Y + 180);
        }
        else if(move == left)
        {
            v.X += sin(vector.Y + 90);
            v.Z += cos(vector.Y + 90);
        }
        else if(move == right)
        {
            v.X += sin(vector.Y - 90);
            v.Z += cos(vector.Y - 90);
        }
        else if(move == turnLeft)
        {
            vector.Y--;
        }
        else if(move == turnRight)
        {
            vector.Y++;
        }

J'ai supposé que les fonctions cos et sin marchait avec des deugré et que getrotation renvoyait aussi des deugrés si tel n'était pas le cas il faudrait modifier en conséquence les fonctions en remplacant 180 par pi et 90 par pi/2 et convertir les angles.

En espérant avoir aidé même si je suis pas sur de tout.

Dark calculator

Retour

Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
136 invités en ligne
membre en ligne: -
RSS Feed