Моя цель - показать диалог пользователю, чтобы он мог выбрать, какой актер добавить в сцену. Я делаю это на главном экране приложения, которое реализует Screen и GestureListener. (Мне нужно, чтобы GestureListener прослушивал двойной щелчок). Я создаю диалог в переопределенном методе touchDown(). Когда появится диалоговое окно, оно не работает. Экран продолжает прослушивать вход в touchDown, если я нажму на любую точку экрана.Libgdx: Dialog не прослушивает вход
Это код:
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