我想接管我的程序中密钥重复的方式,这意味着禁用SDL2如何自动执行。
可以忽略SDL_KEYDOWN
重复事件,因为Event
联盟成员key
有一个repeat
布尔值可以过滤(此问题探讨了这个解决方案:{{3 }})。但SDL_TEXTINPUT
事件中没有相同的信息,因此无法过滤掉重复的字符。
有没有办法彻底禁用密钥重复?
答案 0 :(得分:0)
似乎目前没有简单的方法可以执行此操作,因为我也需要此方法,所以我做了一张票:https://bugzilla.libsdl.org/show_bug.cgi?id=4598
如果还有另一个用例,为什么要这样做,请随时在Bug票证上添加注释,以便开发人员了解这对什么用途至关重要。 (我为那些在Android上具有键键卡住的蓝牙键盘的人提供了紧急禁用选项,这些人仍然希望能够在没有重大事故的情况下键入文本)
答案 1 :(得分:-2)
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++;
//
//