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