Bon, voilà un moyen de gérer les touches.
Il faut d´abord initialiser avec la fonction Init_AppuiTouche.
void Init_AppuiTouche(void)
{
// Traduction UNICODE
SDL_EnableUNICODE(1);
// Répétition des touches
SDL_EnableKeyRepeat(SDL_DEFAULT_REPEAT_DELAY,
SDL_DEFAULT_REPEAT_INTERVAL+50);
}
//fonction d´appui des touches
bool Appui_Touche(string touche)
{
string touche_clavier;
// Traitement des commandes
while(SDL_PollEvent(&event))
{
// Type d´évènement
switch(event.type)
{
case SDL_KEYDOWN:
// Si on presse une touche
switch(event.key.keysym.sym)
{
case SDLK_ESCAPE:
touche_clavier = "ESCAPE";
break;
case SDLK_LEFT:
touche_clavier = "LEFT";
break;
case SDLK_RETURN:
touche_clavier = "RETURN";
break;
case SDLK_UP:
touche_clavier = "UP";
break;
case SDLK_DOWN:
touche_clavier = "DOWN";
break;
case SDLK_RIGHT:
touche_clavier = "RIGHT";
break;
}
break;
// Si on relache une touche
case SDL_KEYUP:
break;
// Fermeture du programme
case SDL_QUIT:
return 0;
}
}
if (touche_clavier == touche)
{
return TRUE;
}
else
{
return FALSE;
}
}
Bon, c´est les touches les plus utilisés pour la S
DL...
Ensuite, dans le main, tu mets:
while (!AppuiTouche("ESCAPE"))
{
//instructions
}
Pour par exemple sortir de la boucle dès que ´Esc´
est appuyée.
Bon, je n´ai pas testé, donc je ne suis pas sûr que ça marche, notamment pour:
if (touche_clavier == touche)
Je ne sais pas si on peut comparer deux strings comme ça...