Libgdx: [HTML / GWT] Input.isKeyPressed始终为TRUE,如果释放发生在LibGDX上下文之外

创建于 2018-03-16  ·  4评论  ·  资料来源: libgdx/libgdx

发行细节

在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上下文中按下/释放错误的键为止。

演示: https :
相关代码: https :

LibGDX的版本和/或相关的依赖项

1.9.8

请选择受影响的平台

  • [ ] 安卓
  • [] iOS(robovm)
  • [] iOS(MOE)
  • [x] HTML / GWT
  • [] Windows
  • [] Linux
  • [ ] 苹果系统
bug good first issue gwt input

最有用的评论

我在libgdx 1.9.6上受影响。 它在chrome中发生,而在Firefox中则可以正常工作。

所有4条评论

我在libgdx 1.9.6上受影响。 它在chrome中发生,而在Firefox中则可以正常工作。

由#5167固定?

我在Chrome浏览器上的libgdx 1.9.6上受影响

此问题已在链接的PR中修复。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

chongbo2013 picture chongbo2013  ·  3评论

centy picture centy  ·  4评论

xahon picture xahon  ·  4评论

ghost picture ghost  ·  3评论

tomcashman picture tomcashman  ·  3评论