如何处理输入处理
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);
.
捕获它
我希望这能回答你的问题。
我目前正在尝试使用 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);
.
我希望这能回答你的问题。