如何处理输入处理

How to approach Inputprocessing

我目前正在尝试使用 scene2d 在 Libgdx 中构建一个选项菜单,我正在尝试找到一种处理用户输入的方法。

我想实现在按下 android 上的后退键时返回主菜单,但我不确定该怎么做,因为其余的输入(按下按钮)将是由我的舞台处理。

如果您对如何解决此问题以及我如何正确处理用户输入有任何想法,请回复。我没有包含任何代码,因为这更多是关于如何处理它,而不是我的代码中的实际问题。

谢谢, 瓦伦丁

您需要创建一个 InputProcessor 并实现它的方法,没有办法解决这个问题,因为后退键与 Stage 是分开的。您还需要有一种从 InputProcessor 访问主菜单对象的方法;假设您使用的是游戏和屏幕,这是一种方法:

public class OptionsScreen implements Screen, InputProcessor {
    final MyGame game;
    public OptionsScreen(MyGame game) { this.game = game; }
    ...
    @Override
    public boolean keyUp(int keycode) {
        if(keycode == Keys.BACK) {
            game.setScreen(game.mainScreen);
            return true;
        }
        return false;
    }
    ...
}

其中 game.mainScreen 是主菜单的屏幕。它也可以是新创建的实例。当然,您还必须启用后退键才能通过 Gdx.input.setCatchBackKey(true);.

捕获它

我希望这能回答你的问题。