修饰键干扰箭头键输入:原按键Released事件丢失问题求助
箭头键移动系统的修饰键干扰问题
我正在开发一个简单的箭头键移动系统,将「Up」「Down」「Left」「Right」输入动作绑定到对应的箭头键。
当前我的实现代码如下:
if (@event.IsPressed()) { // handle action "Up", etc. being pressed } else { // handle action "Up", etc. being released }
该实现运行正常,但如果在按住左箭头键后、松开前意外按下右Ctrl键,且右Ctrl键在左箭头键之后松开(输入顺序为:左箭头按下→右Ctrl按下→左箭头松开→右Ctrl松开),此时Left动作的Released事件不会触发,因为系统将其识别为修饰动作「Ctrl + Left」。
这会导致Released事件未被处理,角色会持续向左移动,需要额外按一次左箭头键才能停止。由于右Shift键也存在相同问题,且它们在键盘上紧邻箭头键,快速移动时每隔几分钟就会出现一次该问题。
请问是否可以通过修改输入动作配置或代码,避免按键按压过程中被修饰键干扰,从而解决这种「左箭头按下-Ctrl+左箭头松开」的不平衡事件对问题?
内容的提问来源于stack exchange,提问作者Jam
相关产品推荐
相关产品推荐

