Bonjour à tous, la question que je vais posé est assez bête, je l'admet. Néanmoins je n'ai pas trouvé la solution, elle est probablement quelque part dans mon cours de math...
Bref, j'aimerai savoir comment faire avancé un élément (un joueur) dans un univers 3D sur l'axe x et z (ici z est la profondeur). J'ai la rotation du personnage mais je ne sais pas comment le faire avancé quand il est tourné à un angle de 30° par exemple.
Merci d'avance.
utilise les vecteurs non ?
fais le déjà en 2D dans le repère (X;Z), à partir de l'angle tu peux en déduire le coefficient directeur de ton vecteur (30° équivaut à un coef de 1/3).
Si debugger, c’est supprimer des bugs, alors programmer ne peut être que les ajouter - Edsger Dijkstra
Sinon, il y a mes maths, effectivement:
Déjà il y a normalement deux angles à prendre en compte en 3D.
Bon, pour la 2D, 1 pas effectué dans une direction d'un angle 30° correspond à cos(30)(=sqrt(3)/2) sur l'axe des abcisses et sin(30)(=1/2)racine sur l'axe des ordonnées.
Salut, la solution standard, je pense, est d'avoir pour chaque perso un vecteur direction (0, 0, -1). Puis, à chaque frame tu tournes ce vecteur selon la rotation du personnage (en le tournant seulement de l'angle Y pour le garder sur le plan (X, Z) dans ton cas). Puis tu multiplies le vecteur obtenu par la vitesse du perso et tu as le nouveau vecteur à ajouter à la position du perso .
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.