我想在C++中的SDL中捕獲F1密鑰的事件。 但是,不知何故,我看不到按F1鍵後的任何更改。但是,當我想在屏幕上切換我的動畫對象時,我使用SDL_t大小寫來執行此操作,並且它正在執行正常。 只是不知道爲什麼它不採取F1鍵。 下面是用於處理按鍵事件的開關情況:SDLK_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;
}
}
}
注:我不能給上面的整個代碼更換預定是我的一部分我想做的事情。
爲什麼你只抓住一個*單*事件每幀? – genpfault