Я пытаюсь поймать событие для клавиши F1 в SDL на С++. Но почему-то я не вижу никаких изменений после нажатия клавиши F1. Но когда я хочу переключать объекты анимации на экране, я использую для этого случай SDL_t, и он работает нормально. Просто не понимаю, почему он не берет клавишу F1. Вот случай переключения для обработки событий нажатия клавиш:
SDL_Event event;
bool done = false;
bool keyPress = false;
while ( not done ) {
draw();
SDL_Flip(screen);
SDL_PollEvent(&event);
if (event.type == SDL_QUIT) { break; }
if(event.type == SDL_KEYUP) { keyCatch = false; }
if(event.type == SDL_KEYDOWN) {
switch ( event.key.keysym.sym ) {
case SDLK_ESCAPE : done = true; break;
case SDLK_q : done = true; break;
case SDLK_F1 : {
if(!keyCatch){
keyPress=true;
//this method is from another class.
io.printMessageAt("F1 is selected:",50,10);
currentOrb = (currentOrb+1) % orbs.size();
}
break;
}
case SDLK_t : case SDLK_SPACE :
if ( !keyPress ) {
//something
}
break;
case SDLK_p : {
if (!keyPress) {
keyPress = true;
//something
}
break;
}
default : break;
}
}
}
ПРИМЕЧАНИЕ. Я не могу привести здесь весь код. Вышеизложенное — это моя часть того, что я пытаюсь сделать.