java - 使用 libgdx 从屏幕键盘获取输入

标签 java android libgdx android-input-method on-screen-keyboard

我正在尝试编写一个游戏,如果他们做某事,它将启动屏幕键盘。然后,如果他们触摸几个键,游戏会将场景切换到奖励级别。我目前正在使用 libgdx,它在带有真实键盘的桌面版本上运行良好。我无法让它在 android 版本上工作。

在渲染方法中:

if (Gdx.input.isTouched()) {
    Vector3 touchPos = new Vector3();
    touchPos.set(Gdx.input.getX(), Gdx.input.getY(), 0);
    camera.unproject(touchPos);

    ...
} else if (touchPos.x > 0 && touchPos.x < 200 
           && touchPos.y > 0 && touchPos.y < 50) {
    Gdx.input.setOnscreenKeyboardVisible(true);
}

这很好用。这样做的全部目的是让键盘显示出来。它确实做到了。但是,当我尝试通过以下方式检测按键时:

if (Gdx.input.isKeyPressed(Keys.A)) {
    // Do What I need it to do.
}

我从来没有得到真正的值(value)。无论什么键或值。如何在 libGDX 中检测来自屏幕 Android 键盘的按键操作?

最佳答案

Gdx.input.isKeyPressed 正在轮询键盘的状态,因此只有当实际按下键时它才会为真。这可能不是屏幕键盘甚至可以报告的状态。

切换到 InputProcessor 使得每个键盘事件都作为一个不同的事件传递。

参见 http://code.google.com/p/libgdx/wiki/InputEvent了解更多详情。

关于java - 使用 libgdx 从屏幕键盘获取输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13383001/

相关文章:

android - 如何在 Android 中为整个应用程序设置自定义字体?

android - 在简历上重新加载 Assets

Libgdx - FrameBuffer 渲染和 FitViewport

java - 我将如何创建 Horizo​​ntally centered “Gravity” ? - libGDX -

java AbstractTableModel 2 每行有不同的颜色

java - Cassandra Java datastax 2.1.8 无法使用引号连接到键空间

java - 将 int 文字分配给 java 中的 long 包装类

java - 未读取变量

java - 如何从视频文件输入中获取连续帧?

android - 当软键盘出现时,如何防止 Android webview 中的固定页脚覆盖输入字段?