如何使用SDL检测同时密钥重复?现在我可以检测到同时按下的按键(但是如果它们都被按下则没有按下)或按下一个按键。我希望能够检测到任何时候按下的所有键。
我的代码
SDL_EnableKeyRepeat (100, 200);
while (SDL_PollEvent (&event)) {
if (event.type == SDL_KEYDOWN) {
if (event.key.keysym.sym == SDLK_t) {
} else if (event.key.keysym.sym == SDL_y) {
}
} else if (blah) {
//blah blah blah
}
}
if (event.key.keysym.sym == SDLK_t) {
} else if (event.key.keysym.sym == SDL_y) {
}
答案 0 :(得分:1)
首先检测所有被按下的键可能是不可能的。由于键盘限制,大多数键盘支持同时按下4-6个按钮,之后按键/按键不会注册。其次我不建议使用密钥重复。 Dunno也许其他人的经历不同,但你可以通过存储你感兴趣的键的状态来获得更好的准确性。即在简单的游戏中,它将成为方向键。您只需在按下左侧时向左移动,在向左释放时或在按下右侧时将其取消设置。如果您需要输入类似的东西,您可以使用一些数组的按钮来设置它,并将按键ID放在按键上。 (我假设你想尝试做类似的游戏)。