【发布时间】:2013-07-08 22:40:54
【问题描述】:
有谁知道如何让 SDL_GetKeyState 正常工作,而不必设置轮询 SDL 事件的循环?
int *keystates;
keystates = SDL_GetKeyState(NULL);
SDL_PumpEvents();
std::cout << "Test 1\n";
if (keystates[SDLK_F1]) {
std::cout << "Test 1 Okay\n";
key_ac = true;
emu->setPower(true);
}
这段代码每秒运行超过 100 次,但是即使我按住 F1 键,我仍然没有得到任何输出表明它是成功的。
我没有 SDL 事件循环,所以这可能是因为我没有使用事件而被丢弃吗?在这种情况下,如何让 SDL 过滤掉所有事件?
【问题讨论】:
-
您的具体问题/问题是什么?如何让事情 A 工作太广泛了。
-
如何让 SDL_GetKeyState 正常工作,而无需设置轮询 SDL 事件的循环?对不起,我应该让它更清楚一点
-
按照文档中的说明使用它,而不是使用事件循环。
-
文档状态“注意:使用 SDL_PumpEvents 更新状态数组。”但是,这在我的情况下不起作用。
-
那么就让它发挥作用吧,我可以根据您提供的信息提供尽可能多的帮助。
标签: c++ events keyboard gtk sdl