我已经开始编写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