J'expérimente avec une entrée au clavier en SDL et j'ai rencontré un problème étrange. Chaque fois que je reçois l'entrée, il ne sort que la réponse appropriée parfois (Clicking X ne se ferme parfois le programme, en appuyant sur 1 sorties uniquement parfois « vous appuyez sur 1 » Voici mon code principal.Les entrées SDL fonctionnent seulement parfois
#include <iostream>
#include <SDL.h>
#include "Screen.h"
#include "Input.h"
using namespace std;
int main(int argc, char *argv[]) {
Screen screen;
Input input;
if (screen.init() == false) {
cout << "Failure initializing SDL" << endl;
}
while (true) {
if (input.check_event() == "1") {
cout << "You pressed 1" << endl;
} else if (input.check_event() == "quit") {
break;
}
}
SDL_Quit();
return 0;
et voici ma classe d'entrée :
#include <iostream>
#include <SDL.h>
#include "Input.h"
using namespace std;
string Input::check_event() {
while (SDL_PollEvent(&event)) {
if (event.type == SDL_QUIT) {
return "quit";
}
else if(event.type == SDL_KEYDOWN){
switch(event.key.keysym.sym){
case SDLK_1:
return "1";
}
}
}
return "null";
}
Toute aide serait appréciée