Je tente de créer un jeu simple en utilisant sdl2 pour gérer les événements clavier. Mais le problème principal est que ni dans la console embarquée de Clion ni dans la console externe mon programme ne peut détecter aucun événement, seulement SDL_AUDIODEVICEADDED
est pris deux fois au début du programme. Voici mon code:La détection du clavier SDL2 ne fonctionne pas
#include <iostream>
#include "include/SDL2/SDL_keyboard.h"
#include "include/SDL2/SDL_keycode.h"
#include "include/SDL2/SDL_scancode.h"
#include "include/SDL2/SDL.h"
using namespace std;
int main(int argc, char* argv []) {
SDL_Event event;
bool running = true;
SDL_Init(SDL_INIT_EVERYTHING);
int x, y;
while(running){
if(SDL_PollEvent(&event)){
switch(event.type){
case SDL_QUIT: running = false; break;
case SDL_KEYDOWN:
switch(event.key.keysym.sym){
case SDLK_q:
running = false;
break;
}
break;
case SDL_MOUSEBUTTONDOWN:
SDL_GetMouseState(&x, &y);
cout << "[SDL_MOUSEBUTTONDOWN] " << "x = " << x << " y = " << y << "\n";
break;
case SDL_MOUSEMOTION:
x = event.motion.x;
y = event.motion.y;
cout << "[SDL_MOUSEMOTION] " << "x = " << x << " y = " << y << "\n";
break;
}
}
}
}
SDL_Init
renvoie 0.
Je ne suis pas entièrement sûr que c'est votre problème, mais je voudrais jeter un coup d'oeil à ce didacticiel paresseux foo http://lazyfoo.net/tutorials/SDL/03_event_driven_programming/index.php. Je vois qu'il fait le sondage d'une manière légèrement différente ('while' vs' if'). Je pense qu'il y a une sorte de problème de synchronisation entre quand vous générez l'événement et quand votre code essaye de l'interroger. –