我已經開始編寫SDL2程序。我希望整數count
上升一個,當用戶按下右箭頭鍵,當用戶按下左鍵向下。SDL2速度太快 - 當我按下一個按鈕時,爲什麼它會讀取多個輸入?
#include <iostream>
#include <SDL2/SDL.h>
int main(){
SDL_Window *window= SDL_CreateWindow("test", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_SHOWN);
int count= 0;
bool isRunning= true;
SDL_Event ev;
while(isRunning){
if(SDL_PollEvent(&ev)){
if(ev.type == SDL_QUIT || ev.key.keysym.scancode == SDL_SCANCODE_ESCAPE)
return 0;
}
const Uint8 *keystate= SDL_GetKeyboardState(NULL);
if(keystate[SDL_SCANCODE_LEFT])
--count;
else if(keystate[SDL_SCANCODE_RIGHT])
++count;
std::cout << count << std::endl;
}
SDL_DestroyWindow(window);
SDL_Quit();
return 0;
}
這裏,當我啓動程序和簡要自來水權氏印刷什麼樣 - 都在一兩秒鐘:
0
0
0
0
0
0
0
0
0
0
0
1
2
3
4
4
4
4
4
當我做一個快速點擊右側的箭頭鍵,我想要count
上升一個,但它從0
到4
。
爲什麼?
我該如何解決這個問題?
如果您有其他問題,請創建一個新問題。如果這是*謝謝*答案,請接受其中一個答案(正確答案)並刪除那個答案。謝謝。 – skypjack