Bonjour,
J'ai vu sur le forum que de nombreux posts parlaient de mon problème, à savoir des événements non traités, mais aucune solution ne correspond réellement à mon problème : quoi que je fasse, la fonction SDL_PollEvent() ne détecte jamais lorsque j'appuie sur une touche.
Voici mon code, j'ai simplifié à l'extrême pour m'assurer que le problème ne vienne pas d'une autre partie de mon code :
SDL_PollEvent() est bien dans un while(), mais rien n'est détecté. À un moment j'avais mis un printf() juste au dessus du switch(), mais rien, il ne rentre donc jamais dans la boucle (la taille du fichier stdout.txt reste à 0 et il disparaît lorsque je quitte le programme, rien n'y est donc écrit).
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 #include <stdio.h> #include <SDL\SDL.h> using namespace std; int main(int argc, char *argv[]) { SDL_Event event; bool bContinue = true; while(bContinue) { while(SDL_PollEvent(&event)) { switch(event.type) { case SDL_KEYDOWN : printf("down"); break; case SDL_KEYUP: printf("up"); break; } } } return 0; }
En fait le programme ne fait rien et lorsque je fais un Ctrl+C, dans ma ligne de commande je vois toutes les touches sur lesquelles j'ai appuyé pendant que le programme tournait.
Je me demande si le problème ne vient pas de mon environnement de développement : Mingw/MSYS (sur Windows donc).
J'ai juste décompressé l'archive de SDL et ai copié les headers dans Mingw\include\SDL, pareil pour les lib.
Tout ce qui est compilation et liens fonctionnent très bien.
J'ai lu quelque part qu'il fallait utiliser sdl-config, je l'ai rajouté dans ma ligne de commande (`sdl-config etc...`), mais rien n'y fait. En même temps je ne l'ai pas modifié et j'ai vu que le préfixe était mauvais (pas /usr).
Quelqu'un peut-il m'aider ?
Merci.
Cordialement.
Partager