【问题标题】:keyboard input doesnt work in libgdx android键盘输入在 libgdx android 中不起作用
【发布时间】:2013-11-10 19:46:20
【问题描述】:

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

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

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

编辑 1:

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

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

【问题讨论】:

    标签: java android libgdx


    【解决方案1】:

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

    https://github.com/libgdx/libgdx/wiki/Event-handling

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

    【讨论】:

    • 他写道“我也尝试过使用 InputProcessor,但这也不起作用。”
    • 是的,我知道,但没有详细信息。他可以编辑这个问题以涵盖两种获取输入的方式,但我怀疑答案非常不同,所以它似乎应该是一个新问题......
    • 是的,但是如果在渲染中,所以它会不断检查。在桌面上工作正常。我也试过 InputProcessor。我已添加到问题中
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 2019-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-26
    相关资源
    最近更新 更多