我正在尝试在 C++ 中的 SDL 中捕捉 F1 键的事件。但是,不知何故,按下 F1 键后我看不到任何变化。但是,当我想在屏幕上切换我的动画对象时,我使用 SDL_t 案例来执行此操作,并且执行得很好。只是不明白为什么不按 F1 键。下面是处理按键事件的 switch case:
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;
}
}
}
注意:我不能在这里给出整个代码。以上是我正在尝试做的部分。