1

我已经有这个问题大约 2 周了。我正在制作一个需要您输入的基于文本的游戏。但是,我使用的是我自己的输入系统,而不是 LIBGDX 的文本字段,长篇大论。基本上我需要的是

if(Gdx.input.isKeyPressed(Keys.a)){
      //do some stuff
   }

那。但是,这在 android 上不起作用,但在桌面上可以正常工作。我不知道为什么会这样,它开始让我烦恼。我发现的一件事是,如果您在 android 上连续按下一个键,它最终会键入它,但这会使游戏变得非常乏味。我也尝试过使用 InputProcessor 但这也不起作用。我现在几乎尝试了所有我能想到的没有解决方案。任何帮助是极大的赞赏

编辑1:

我也试过 InputProcessor。问题是,它在按键上没有做任何事情,但是当我按下 Android 的硬件时,它会在最初按下按键时做它应该做的事情。同样使用这两种方法,我发现它适用于某些键盘而不是其他键盘。EG:与 HTC sense 键盘配合使用

编辑 2:经过更多的摆弄,我发现如果我让应用程序在 InputProcessor 的 keyIsTyped 方法下做某事,它只有在键盘关闭后才会这样做。不确定这是否意味着什么

4

1 回答 1

1

您正在进行基于轮询的输入,我认为基于事件的结构会更好地为您服务。通过轮询,您只会在按下按键时检查它是否被按下(这取决于刷新率),基于事件的您将收到每次按键发生的事件,无论何时发生,不管它有多快。

请参阅https://github.com/libgdx/libgdx/wiki/Event-handling

如果您在以这种方式获取键盘事件时遇到问题,请发布另一个问题!

于 2013-11-10T23:07:06.787 回答