Deplacement d'un personnage en OpenGL

Clercq Messages postés 19 Date d'inscription samedi 18 décembre 2004 Statut Membre Dernière intervention 14 juin 2006 - 14 mars 2005 à 21:49
KeniiyK Messages postés 326 Date d'inscription vendredi 13 août 2004 Statut Membre Dernière intervention 2 novembre 2007 - 15 mars 2005 à 09:13
Bonjour a tous,

J'ai parcourus les sources de ce site mais je n'ai pas concretement trouvé reponse a ma question, en fait j'ai creer un personnage type "Tomb Rider" et je voufrai le faire evoluer sur dans l'espace, pour cela j'applique une rotation a mon personnage, puis une translation sur mon terrain, mais je crois que je me suis embrouiller avec les cosinus et sinus. Enen fait je fait un

glRotatef(tourne,0.0, 0.0, 0.0) sur le perso
et un
glTranslatef(sin(tourne*Pi/180)*avance, cos(tourne*Pi/180)*avance,0.0); sur le terrain, mais jai l'impression d'avoir une rotation suivit d'une translation alors que mon terrain et mon perso sont isole par des push et popmatrix.

En fait si vous savez comment faire sa srerais cool, ou meme une redidirection a suivre que je me creuse la tete mais dans la bonne direction :p.

Ganjy vous dit merci :). Et bonne programmation.

3 réponses

KeniiyK Messages postés 326 Date d'inscription vendredi 13 août 2004 Statut Membre Dernière intervention 2 novembre 2007 2
14 mars 2005 à 22:30
glRotatef(tourne,0.0, 0.0, 0.0) deja là faudrai preciser l'axe de rotation non ?

Ensuite et à ce que j'ai compris tu veux avancer de "avance", mais tu viens de faire la rotation alors je vois pas l'utilite du cos et sin dans le glTranslatef.

Et enfin, vu que tu ne te deplaces pas suivant les Z (0.0 dans glTranslatef) je pense que ton axe de rotation dans glRotatef c'est ( 0.0,0.0,1.0 ). Puis admettons que t'avances sur les X glTranslatef(avance,0.0,0.0) ou glTranslatef(0.0,avance,0.0) si Y sens d'avancement.

KeniiyK.
0
asmanur Messages postés 230 Date d'inscription mercredi 11 février 2004 Statut Membre Dernière intervention 4 août 2005
15 mars 2005 à 07:05
ca va pas marcher le seul moyen de faire un déplacement d'un perso que le
joueur peut faire tourner c'est :
double x,y; //Coordonnées
double angle; //Angle vers lequel est tourné

//Dans draw
glPushMatrix();
glTranslated(x,y,0);
glRotated(angle,0,0,1);
//Dessin

et dans la fonction qui gère les touches et l'avancement tu dois utilisé les
fonctions trigonométriques
Sinon t'as pas trouvé de source t'as mal cherché, j'ai eu le meme problème
que toi et je me suis servi de Labyrinthe mania de gagah1 mais ya aussi plein
d'autres sources de labyrinthe dans le site
a+
0
KeniiyK Messages postés 326 Date d'inscription vendredi 13 août 2004 Statut Membre Dernière intervention 2 novembre 2007 2
15 mars 2005 à 09:13
Ben si ca peut marche, tout depend du type de transformation qu'il veut faire et en règle générale on fait la rotation puis la translation.

Clercq essaye aussi de faire un glLoadIdentity entre le glPushMatrix et le glRotatef (je sais plus a quoi son initialise les matrices...)
0
Rejoignez-nous