使用libgdx获取来自屏幕键盘的输入

4

我正在尝试编写一款游戏,如果玩家进行某些操作,屏幕键盘就会弹出。然后,如果他们触摸了几个按键,游戏将切换到奖励关卡。我目前正在使用libgdx,在桌面版本上使用真实键盘效果很好。但是在android版本上无法正常工作。

在render方法中:

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屏幕键盘的按键?


2
如果您设置了一个InputProcessor来获取输入事件(请参见http://code.google.com/p/libgdx/wiki/InputEvent),那么键盘更改会在那里显示吗? - P.T.
它可以。我创建了一个新类并停止轮询该键。非常感谢您的帮助。 - Keylay
1个回答

2

Gdx.input.isKeyPressed是轮询键盘状态的方法,因此只有当按键实际被按下时才会返回true。这可能是屏幕键盘无法报告的状态。

切换到InputProcessor可以使每个键盘事件作为单独的事件传递。

更多细节请参见http://code.google.com/p/libgdx/wiki/InputEvent


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接