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

时间:2012-11-14 16:32:50

标签: 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.
}

我从来没有得到真正的价值。无论什么关键或价值。如何从libGDX中的屏幕Android键盘检测按键?

1 个答案:

答案 0 :(得分:2)

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

切换为InputProcessor 这使得每个键盘事件都作为一个独特的事件传递。

有关详细信息,请参阅http://code.google.com/p/libgdx/wiki/InputEvent