Rotation de forme

Signaler
Messages postés
10
Date d'inscription
mercredi 24 février 2010
Statut
Membre
Dernière intervention
19 mars 2010
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
Bonsoir, je suis débutant et fasciné en opengl, mais je m'oppose à un probléme, en faite j'essaie de faire tourner mes forme geometrique à l'aide des evenements du clavier, mais sans succes..

#define rot1     20
#define rot2     30

int main(int argc, char *argv[])
{
    SDL_Init(SDL_INIT_VIDEO);
    SDL_WM_SetCaption("Mon premier programme OpenGL !",NULL);
    SDL_SetVideoMode(640, 480, 32, SDL_OPENGL);

    int continuer = 1;
    SDL_Event event;
 
    while (continuer)
    {
          
        SDL_WaitEvent(&event);
        switch(event.type)
        {
            case SDL_QUIT:
                continuer = 0;
            case SDLK_LEFT:
                if ((event.key.keysym.mod & KMOD_LSHIFT) == KMOD_LSHIFT)
                {
                      rot1++;
                      rot2++;
                      break;
                }
            case SDLK_RIGHT:
                if ((event.key.keysym.mod & KMOD_LSHIFT) == KMOD_LSHIFT)
                {
                      rot1--;
                      rot2--;
                      break;
                }
   
        }


  glClear(GL_COLOR_BUFFER_BIT);
  glLoadIdentity();
  glOrtho(-1.0,1.0,-1.0,1.0,-1.0,1.0);
  glMatrixMode(GL_MODELVIEW);

  
  
  glTranslatef(-0.5,0,0);
  glRotated(rot1,0,0,1);
  glBegin(GL_POLYGON);
    glColor3ub(255,0,0);
    glVertex2f(-0.2,-0.2);
    glColor3ub(0,255,0);
    glVertex2f(-0.2,0.2);
    glColor3ub(0,0,255);
    glVertex2f(0.2,0.2);
    glColor3ub(255,0,0);
    glVertex2f(0.2,-0.2); 
  glEnd();

   
   glTranslatef(0.8,-0.2,0);
   glRotated(rot2,0,0,1);
   glBegin(GL_TRIANGLES);
     glColor3ub(255,0,0);
     glVertex2f(-0.2,0);
     glColor3ub(0,255,0);
     glVertex2f(0.2,0);
     glColor3ub(0,0,255);
     glVertex2f(0,0.5);
   glEnd();
   
glFlush();
    	SDL_GL_SwapBuffers();

    }

    SDL_Quit();

    return 0;
}


Mon compilteur me retourne sans arret la meme erreur

[b]26 C:\Dev-Cpp\main.cpp `amp' undeclared (first use this function)
(Each undeclared identifier is reported only once for each function it appears in.)/b

Voila, je vous remercie !!

1 réponse

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
13
Bienvenue,

Tu es un petit soleil dans ma journée : ton erreur m'a bien fait rigoler !

Tu l'aurais pas un peu copié-collé ce code par hasard ?
Le compilo te dit que amp n'est pas déclaré, et pour cause ->
if ((event.key.keysym.mod & KMOD_LSHIFT) == KMOD_LSHIFT)


"&" ça ressemble presque à du C, mais c'est en fait une manière d'écrire le caractère "&" dans du HTML sans avoir de problème d'encodage.

Donc il faut simplement que tu remplace "&" par "&" et ça ira mieux !