J'ai une fonction générale qui est censée gérer n'importe quel événement dans la file d'attente d'événements SDL. Jusqu'à présent, la fonction ressemble à ceci:SDL_Event.type toujours vide après l'interrogation
int eventhandler(void* args){
cout << "Eventhandler started.\n";
while (!quit){
while (SDL_PollEvent(&event)){
cout << "Got event to handle: " << event.type << "\n";
switch (event.type){
SDL_KEYDOWN:
keyDownHandler(event.key.keysym.sym);
break;
default:
break;
}
}
}
}
Cependant, quand je teste la fonction, je reçois un tas d'événements, mais aucun d'entre eux semblent avoir un type. Il n'imprime même pas 0 ou quoi que ce soit - juste rien. La sortie lorsque vous appuyez sur une touche ressemble à ceci:
Got event to handle:
Et rien d'autre. Tout didacticiel et les documents SDL disent que je devrais gérer des événements comme celui-ci, mais cela ne fonctionne pas. Quelqu'un d'autre a ce problème ou une solution? À propos, l'eventhandler s'exécute dans un SDL_Thread, mais je ne pense pas que ce soit le problème.
'SDL_KEYDOWN:' devrait être 'cas SDL_KEYDOWN:'. –
@gf: Vous avez raison, merci. Assez curieusement cela l'a résolu aussi. Le event.type est toujours vide mais * en quelque sorte * cela fonctionne. Merci. –
Je suppose que vous ne compilez pas à travers MS Visual C++, mais un mot d'avertissement sur l'utilisation de "événement". C'est en fait un mot-clé dans VC++, et je le changerais en "e" ou quoi que ce soit, pour des raisons de compatibilité. Vous pourriez un jour souhaiter utiliser VC++, ou quelqu'un d'autre pourrait vouloir voir votre travail à travers elle. C'est un compilateur très utilisé après tout. – Zoomulator