我想在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