我想接管我的程序中密钥重复的方式,这意味着禁用SDL2如何自动执行。
有可能忽略SDL_KEYDOWN
重复事件,因为Event
联盟成员key
有一个你可以过滤的repeat
布尔值(这个问题探讨了这个解决方案:How to disable key repeat in SDL2?)。但SDL_TEXTINPUT
事件中没有相同的信息,因此不可能过滤掉重复的字符。
有没有办法彻底禁用密钥重复?
目前似乎没有简单的方法可以做到这一点,因为我也需要这个,我做了一张票:https://bugzilla.libsdl.org/show_bug.cgi?id=4598
如果您还有另外一个用例,为什么要这样,请随意在错误票据上添加注释,以便开发人员了解这对哪些用途很重要。 (我正在为那些希望仍然能够在没有重大事故的情况下输入文本的键盘卡上蓝牙键盘的人提供紧急禁用选项)
在SDL lib中可能是一个解决方案,但您也可以添加一些简单的c ++代码来解决您的问题。例如,如果您不想使用SDL_KEYUP,您可以执行以下操作:
//before loop
int keypress_control = 0;
//much Code, loop etc.
//
swich(event.type)
case SDL_KEYDOWN :
/*if or switch again as you want */if (keypress_control ==
2)
{
/*Code here*/
keypress_control = 0;
}
else
{
keypress_control = 0;
}
}
//after switch but Still in program loop
Keypress_control++;
//
//