我的目標是向用戶顯示一個對話框,以便他能夠選擇將哪個演員添加到舞臺。我在實現Screen和GestureListener的應用程序的主屏幕中執行此操作。 (我需要GestureListener來傾聽雙擊)。我在被覆蓋的touchDown()方法中創建對話框。 當對話框出現時,它不起作用。如果我點擊屏幕上的任意一點,屏幕會一直監聽touchDown中的輸入。Libgdx:對話框不聽輸入
這是代碼:
public class SquareDefense implements Screen, GestureListener {
....
@Override
public boolean touchDown(float x, float y, int pointer, int button) {
System.out.println("touchDown");
if(squareDefenseTable.getActor(x, y) != null) {
// rotate the clicked actor!
squareDefenseTable.rotateActor(x, y);
}
else {
showDialog();
}
return true;
}
private void showDialog() {
Dialog dialog = new Dialog("Choose an action", skin) {
@Override
protected void result(Object object) {
boolean exit = (Boolean) object;
if (exit) {
Gdx.app.exit();
} else {
remove();
}
}
@Override
public Dialog show(Stage stage) {
return super.show(stage);
}
@Override
public void cancel() {
super.cancel();
}
@Override
public float getPrefHeight() {
return 50f;
}
};
dialog.button("Yes", true);
dialog.button("No", false);
dialog.key(Input.Keys.ENTER, true);
dialog.key(Input.Keys.ESCAPE, false);
dialog.show(stage);
}
}
我不知道,如果你的問題解決了,如果是的話,你可以通過選擇正確的答案來解決你的問題,謝謝 – Netero