在LibGDX环境中,如果您按下一个键然后切换到LibGDX范围之外的任何窗口并释放该键,则LibGDX环境不会检测到该释放事件。
重新进入LibGDX环境后,可能应该对LibGDX认为已按下的键进行一些重新轮询评估,以确定它们是否仍被按下。
值得注意的是,如果您在LibGDX环境之外按下键,然后进入LibGDX环境,则会检测到keyDown。 因此,由于释放是在环境外部进行的,因此对于离开上下文时按下的键重新输入似乎只是一个错误。
如果您将ALT + TAB转到浏览器外部的窗口,则LibGDX认为在您返回LibGDX上下文时仍按ALT(可能还有TAB)。 这确实会使某些键绑定感到粘滞和折断。
这也使TextField(可能还有其他组件的堆)产生了一些非常奇怪的行为。 对于CONTROL_LEFT按下的情况,TextField CONTROL + A和CONTROL + Z提供了专门的功能,因此,如果按下CONTROL_LEFT,则单击另一个窗口(将焦点放在LibGDX浏览器上),释放CONTROL_LEFT,然后返回LibGDX上下文Gdx.input。 isKeyPressed(Input.Keys.CONTROL_LEFT)将返回true,直到您仅在LibGDX上下文中按下/释放错误的键为止。
1.9.8
我在libgdx 1.9.6上受影响。 它在chrome中发生,而在Firefox中则可以正常工作。
由#5167固定?
我在Chrome浏览器上的libgdx 1.9.6上受影响
此问题已在链接的PR中修复。
最有用的评论
我在libgdx 1.9.6上受影响。 它在chrome中发生,而在Firefox中则可以正常工作。