1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
| void MenuCible(Principale *ptr, SDL_Event *evenement) //ptr est un pointeur sur une structure contenant toutes les données importantes, comme les textures
{
... //Passage en 2D
if(ptr->format == false) //Format 4/3
{
gluOrtho2D(0, 800, 0, 600);
glBindTexture(GL_TEXTURE_2D, ptr->textures[3]);
glBegin(GL_QUADS);
glTexCoord2i(0, 0); glVertex2f(200, 150); //Coordonnées du menu en 800x600
glTexCoord2i(0, 1); glVertex2f(200, 450);
glTexCoord2i(1, 1); glVertex2f(600, 450);
glTexCoord2i(1, 0); glVertex2f(600, 150);
glEnd();
}
if(ptr->format == true) //Format 16/9
{
gluOrtho2D(0, 1067, 0, 600);
glBindTexture(GL_TEXTURE_2D,ptr->textures[3]);
glBegin(GL_QUADS);
glTexCoord2i(0, 0); glVertex2f(266, 150); //Coordonnées du menu en 1067x600
glTexCoord2i(0, 1); glVertex2f(266, 450);
glTexCoord2i(1, 1); glVertex2f(800, 450);
glTexCoord2i(1, 0); glVertex2f(800, 150);
glEnd();
}
if(evenement->type == SDL_MOUSEMOTION)
{
if(format == false)
{
if(evenement->motion.x>= 213 && evenement->motion.x <= 400 && evenement->motion.y >= 278 && evenement->motion.y <= 314)
{ //Coordonnées du bouton en 800x600
SDL_ShowCursor(false); //Curseur masqué
glBindTexture(GL_TEXTURE_2D,ptr->textures[4]); //Dessin de la main aux coordonnées du curseur
glBegin(GL_QUADS);
glTexCoord2i(0, 0); glVertex2f(evenement->motion.x, (600-evenement->motion.y)-20);
glTexCoord2i(0, 1); glVertex2f(evenement->motion.x, (600-evenement->motion.y));
glTexCoord2i(1, 1); glVertex2f(evenement->motion.x+15, (600-evenement->motion.y));
glTexCoord2i(1, 0); glVertex2f(evenement->motion.x+15, (600-evenement->motion.y)-20);
glEnd();
}
else
SDL_ShowCursor(true); //Dans les autres cas, le curseur n'est pas masqué
}
if(format == true)
{
if(evenement->motion.x>= 284 && evenement->motion.x <= 532 && evenement->motion.y >= 278 && evenement->motion.y <= 314)
{ //Coordonnées du bouton en 1067x600
SDL_ShowCursor(false);
glBindTexture(GL_TEXTURE_2D,ptr->textures[4]);
glBegin(GL_QUADS);
glTexCoord2i(0, 0); glVertex2f(evenement->motion.x, (600-evenement->motion.y)-20);
glTexCoord2i(0, 1); glVertex2f(evenement->motion.x, (600-evenement->motion.y));
glTexCoord2i(1, 1); glVertex2f(evenement->motion.x+15, (600-evenement->motion.y));
glTexCoord2i(1, 0); glVertex2f(evenement->motion.x+15, (600-evenement->motion.y)-20);
glEnd();
}
else
SDL_ShowCursor(true);
}
}
...
} |
Partager