我正在用C++编写一个游戏。为此,我需要检测多个按键同时被按下或按住,或者检测按键按下和按键释放事件。
例如,如果我同时按住向上和向右键,并向上按。我需要一种方法来找到右键何时真正释放,这样它就不会像这样中断。
我知道sdl2
可以识别被按下或按住的多个键,但这需要创建一个窗口,我希望它完全在终端中。
另外,来自curses/ncurses
的getch()
对此不起作用。
我能用什么做这个?如果可能的话,我想避开快板。
您没有提到现在如何读取键输入以及如何处理输入,所以这只是关于如何处理键输入的一般建议。
当您检测或处理特定按键的按键按下(按键按下(事件时,设置一个标志(例如keyflags=keyflags|key_RIGHT(以指示按键按下,并取消设置(删除(按键按下事件上的标志。如果你直接按下按键,这可能会解决你今天遇到的问题。