2013-12-12 2 views
4

SDL 2.0에서 keydown 이벤트를 폴링하고 키를 누른 채 여러 차례 keydown 이벤트가 발생합니다. SDL 1.2.15를 사용하여 동일한 프로그램을 실행하려고하면 (SDL 1.2.15가 SDL_Window를 지원하지 않으므로 사소한 변경 사항이 있음)이 문제는 발생하지 않습니다. keydown 이벤트는 예상 한 번 발생합니다. 나는 다른 컴퓨터에서 프로그램을 실행하여 컴퓨터 관련 문제가 아닌지 확인하기까지했습니다. 다음과 같이SDL 2.0 키보드 입력 문제

관련 코드는 다음과 같습니다

#include <iostream> 
#include <SDL.h> 
using namespace std; 

SDL_Event event; 
SDL_Window* screen = NULL; 
int main(int argc, char* args[]) 
{ 
    if(SDL_Init(SDL_INIT_EVERYTHING) == -1) 
    { 
     cout << "ERROR INIT"; 
     return 0; 
    } 
    screen = SDL_CreateWindow("My Game Window", 
          SDL_WINDOWPOS_UNDEFINED, 
          SDL_WINDOWPOS_UNDEFINED, 
          640, 480, 
          SDL_WINDOW_OPENGL); 


    bool quit = false; 
    while(!quit) 
    { 
     while(SDL_PollEvent(&event)) 
     { 
      if(event.type == SDL_KEYDOWN) 
      { 
       cout << "KEY PRESSED!" << endl; 
      } 
     } 
    } 
    return 0; 
} 

답변

2

SDL_KEYDOWN 이벤트 곳 event.key.repeat != 0를 무시합니다.