0
我有一個名爲AbstractGameScreen具有以下簽名類:Libgdx,如何捕捉返回鍵,當級是輸入處理器
public abstract class AbstractGameScreen extends InputAdapter implements Screen { ... }
我的屏幕擴展這個抽象類。現在我遇到的問題是,在使用階段的屏幕中,我已經將舞臺設置爲輸入處理器。但是,如果我這樣做,keyUp方法不會在按下後退鍵時執行。如果我將屏幕設置爲inputprocessor,則舞臺不起作用。我如何解決這個問題?
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;
}
它完全在大多數屏幕的類。只有在MenuScreen(上面的代碼)中,keyUp方法會執行兩次,這會導致應用程序退出。關於這是爲什麼的任何想法?在閱讀文檔以停止事件委派之後,我已經嘗試將返回值更改爲true。但是這並沒有奏效。 – Doflaminhgo
好吧,沒關係。粘貼答案時,我不小心刪除了catchBackKey方法。它現在完美運作。謝謝! – Doflaminhgo