如何使用SDL同时重复密钥重复?

时间:2011-01-12 06:03:23

标签: input keyboard sdl

如何使用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) { }

1 个答案:

答案 0 :(得分:1)

首先检测所有被按下的键可能是不可能的。由于键盘限制,大多数键盘支持同时按下4-6个按钮,之后按键/按键不会注册。其次我不建议使用密钥重复。 Dunno也许其他人的经历不同,但你可以通过存储你感兴趣的键的状态来获得更好的准确性。即在简单的游戏中,它将成为方向键。您只需在按下左侧时向左移动,在向左释放时或在按下右侧时将其取消设置。如果您需要输入类似的东西,您可以使用一些数组的按钮来设置它,并将按键ID放在按键上。 (我假设你想尝试做类似的游戏)。