GESTION CLAVIER SDL ET OPENGL

cs_Batman60 Messages postés 71 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 21 octobre 2007 - 11 sept. 2005 à 17:43
cs_Batman60 Messages postés 71 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 21 octobre 2007 - 17 sept. 2005 à 09:07
salut voici une partie de mon code pour me déplacer dans un espace 3D
je cherche le moyen d'avancer(SDLK_UP) dans le sens de la rotation choisi(SDLK_x ou SDLK_w) comment faire
pour l'instant quand je fais une rotation en avançant en même temps, j'avance de travers
merci
GLfloat a=8.0f;
GLfloat b=0.0f;
GLfloat c=0.0f;
GLfloat d=0.0f;

gluLookAt(0.0,c,1.1,0.0,0.0,0.0,0.0,1.0,0.0);
// eye // center // up //
glRotatef(d,0.0,1.0f,0.0f);
glTranslatef( b,-8.0,a);

glBegin(GL_QUADS);
glTexCoord2f(1.0,1.0);glVertex3f(-32.5f,0.0f,-40.0f);//devant gauche
glTexCoord2f(1.0,0.0);glVertex3f(-32.5f,0.0f,+40.0f);//arrière gauche
glTexCoord2f(0.0,0.0);glVertex3f(+32.5f,0.0f,+40.0f);//arrière droit
glTexCoord2f(0.0,1.0);glVertex3f(+32.5f,0.0f,-40.0f);//devant droit
glEnd();

if(Key(SDLK_LEFT))b+=0.1f;//translation gauche
if(Key(SDLK_RIGHT))b-=0.1f;//translation droite
if(Key(SDLK_UP))a+=0.1f;//avant
if(Key(SDLK_DOWN))a-=0.1f;//arrière
if(Key(SDLK_a))c+=0.01f;//regarde en bas
if(Key(SDLK_q))c-=0.01f;//regarde en haut
if(Key(SDLK_x))d+=0.1f;//rotation à droite
if(Key(SDLK_w))d-=0.1f;//rotation à gauche

1 réponse

cs_Batman60 Messages postés 71 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 21 octobre 2007
17 sept. 2005 à 09:07
salut
RECTIFICATIF
comment effectuer une rotation de ce QUADS sans utiliser les fonctions glRotatef etc .....
et sans déformer le quads lors de la rotion
je crois qu'il faut faire varier les x et z des glVertex mais comment
merci
glBegin(GL_QUADS);
glTexCoord2f(1.0,1.0);glVertex3f(-32.5f,0.0f,-40.0f);//devant gauche
glTexCoord2f(1.0,0.0);glVertex3f(-32.5f,0.0f,+40.0f);//arrière gauche
glTexCoord2f(0.0,0.0);glVertex3f(+32.5f,0.0f,+40.0f);//arrière droit
glTexCoord2f(0.0,1.0);glVertex3f(+32.5f,0.0f,-40.0f);//devant droit

glEnd();
0
Rejoignez-nous