vincemail
Messages postés79Date d'inscriptionmardi 29 juillet 2003StatutMembreDernière intervention 8 décembre 2006
-
19 févr. 2006 à 01:16
vincemail
Messages postés79Date d'inscriptionmardi 29 juillet 2003StatutMembreDernière intervention 8 décembre 2006
-
19 févr. 2006 à 17:11
Bonjour, j'utilise SDL pour gérer le clavier : les flèches directionnelles doivent déplacer un personnage à l'écran. Mon problème est qu'il faut relacher et appuyer sur une touche à chaque fois que l'on désire faire avancer le personnage. Alors que je voudrais qu'il continue à se déplacer lorsque la touche est maintenue enfoncée... Voilà la boucle qui gère le clavier :
while (arret==false)
{
SDL_WaitEvent(&event);
touche = SDL_GetKeyState(NULL);
if ( touche[SDLK_ESCAPE] ) arret=true;
if ( touche[SDLK_UP] ) hero.Avancer();
if ( touche[SDLK_DOWN] ) hero.Reculer();
if ( touche[SDLK_LEFT] ) hero.TournerGauche();
if ( touche[SDLK_RIGHT] ) hero.TournerDroite();
hero.Afficher();
}
Voilà, j'epère que quelqu'un saura me répondre. Merci
Vincent
vincemail
Messages postés79Date d'inscriptionmardi 29 juillet 2003StatutMembreDernière intervention 8 décembre 2006 19 févr. 2006 à 17:11
j'ai trouvé, en fait le problème vient de SDL_WaitEvent(&event) qui bloque la boucle jusqu'à ce qu'un nouvel événement ait lieu, donc si l'on maintient la touche enfoncée, cela ne compte que pour un seul événement. Il faut remplacer cette ligne par SDL_PollEvent(&event);