如何在SDL2中禁用密钥重复?

时间:2014-03-03 20:33:44

标签: sdl sdl-2

在SDL中曾经有一个名为SDL_EnableKeyRepeat()的函数,但在SDL2中不再存在。

我在SDL2-wiki中搜索过但未能找到任何相关内容。

有什么想法吗?

3 个答案:

答案 0 :(得分:27)

处理键盘事件时,只需过滤掉任何重复事件的事件,即检查repeat联盟SDL_KeyboardEvent的{​​{1}}字段。

例如:

SDL_Event

请参阅https://wiki.libsdl.org/SDL_KeyboardEvent

答案 1 :(得分:2)

SDL_GetKeyboardState函数可以更好地为您提供服务,该函数会告诉您所有按下的键。您也可以只检查事件中的repeat标志,并在重复为真时忽略。

答案 2 :(得分:1)

您可以自己动手,将“向下”键添加到列表中,并在捕获KEY_UP时将其删除,并且在每个帧中,您可以迭代列表以了解哪个键仍然处于关闭状态。