input - SDL 2.0 键盘输入问题

标签 input keyboard sdl sdl-2

当我尝试在 SDL 2.0 中轮询 keydown 事件并按住某个键时,我会收到多个 keydown 事件,一个接一个。当我尝试使用 SDL 1.2.15 运行相同的程序时(由于 SDL 1.2.15 不支持 SDL_Window,因此略有改动),我没有这个问题。 keydown 事件只发生一次,就像它应该的那样。我什至尝试在另一台计算机上执行该程序,以确保它不是特定于计算机的问题。

相关代码如下:

#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;
}

最佳答案

忽略 SDL_KEYDOWN 事件,其中 event.key.repeat != 0

关于input - SDL 2.0 键盘输入问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20551447/

相关文章:

html - 样式化的搜索栏在 IE7 中完全消失

c++ - 使用xcode的c++应用程序中文件的相对路径

macos - 如何在 macOS 上禁用 vsync

c - SDL2 tilemap - 太慢

python - 当我的代码对输入进行排序时,为什么它在某些情况下不起作用?

在 C 中将文本文件读入缓冲区的正确方法?

input - 如何向 CNN 输入标量(非图像)值?

android - 如何在键盘上的xml中为功能键设置不同的背景?

keyboard - 调用 RubyMine 控制台中的上一个命令

ios - 启用键盘时使 iOS 页面可滚动