【发布时间】:2016-12-29 18:14:52
【问题描述】:
我有一个名为 AbstractGameScreen 的类,其签名如下:
public abstract class AbstractGameScreen extends InputAdapter implements Screen { ... }
我所有的屏幕都扩展了这个抽象类。现在我遇到的问题是,在使用阶段的屏幕中,我已经将阶段设置为输入处理器。但是如果我这样做了,keyUp 方法就不会在按下后退键时执行。如果我将屏幕设置为输入处理器,则舞台不起作用。我该如何解决这个问题?
public class MenuScreen extends AbstractGameScreen {
@Override
public void show() {
stage = new Stage(new StretchViewport(Constants.VIEWPORT_GUI_WIDTH, Constants.VIEWPORT_GUI_HEIGHT));
Gdx.input.setInputProcessor(stage);
Gdx.input.setCatchBackKey(true);
instructionsVisible= false;
rebuildStage();
}
@Override
public boolean keyUp (int keycode) {
// Back to Menu
if (keycode == Input.Keys.ESCAPE || (keycode == Input.Keys.BACK && instructionsVisible)) {
instructionsVisible=false;
layerInstruction.setVisible(false);
layerControls.setVisible(true);
}
else
{
Gdx.app.exit();
}
return false;
}
【问题讨论】: