Bonjour, je suis entrain de coder un jeu de rôle, et je rencontre un problème avec la gestion des évènements.
En effet, pendant un SDL_Delay, il est prévu que tout le programme soit en pause, or il continue de stocker les touches attendues par les events si elles sont appuyés même pendant le SDL_Delay, et a la fin de celui ci elles sont appliqués. Exemple :
Ici, si j'appuie sur "1" , le perso monte, le programme dort pendant 1 seconde, mais pendant cette seconde, si j'appuie 3* sur "2" par exemple a la fin de cette seconde le perso va aller 3* en bas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 while ( *continuer ) { SDL_WaitEvent(&event); switch(event.type) { case SDL_QUIT: *continuer = 0; break; case SDL_KEYDOWN: switch(event.key.keysym.sym) { case SDLK_KP1: //monter SDL_Delay( 1000 ); break; case SDLK_KP2: //descendre SDL_Delay ( 1000 ); break; } break; } }
Je voudrais que les touches appuyés pendant le delay ne soient pas stockés et jamais exécutés.
Est-ce possible ?
Merci d'avance à vous.
Partager