Я разрабатываю приложение для Android, но я застрял в создании слушателей для своих кнопок. Я уже прочитал множество статей и провел тестирование уже несколько часов, но это просто не сработает. Мне понравилось в этом примере: https://gist.github.com/mattdesl/5461944, и у меня даже нет ошибок в моем коде, но моя кнопка вообще не реагирует.Добавление ClickListener в TextButton LibGDX
Вот как я пытался (или, по крайней мере, один из нескольких попыток):
...public MainMenuScreen(final Stapler gam) {
game = gam;
stage = new Stage();
table = new Table();
table.setFillParent(true);
stage.addActor(table);
Gdx.input.setInputProcessor(stage);
font = new BitmapFont(Gdx.files.internal("fonts/Blox.fnt"));
bodoque = new BitmapFont(Gdx.files.internal("fonts/bodoque.fnt"));
shapeRenderer = new ShapeRenderer();
// Add widgets to the table here.
TextureRegion upRegion = new TextureRegion(new Texture(
Gdx.files.internal("boxLila.png")));
TextureRegion downRegion = new TextureRegion(new Texture(
Gdx.files.internal("boxGruen.png")));
BitmapFont buttonFont = new BitmapFont(
Gdx.files.internal("fonts/Blox.fnt"), false);
TextButtonStyle style = new TextButtonStyle();
style.up = new TextureRegionDrawable(upRegion);
style.down = new TextureRegionDrawable(downRegion);
style.font = buttonFont;
play = new TextButton("Play", style);
table.add(play);
play.addListener(new ClickListener() {
public void clicked(InputEvent e, float x, float y) {
game.setScreen(game.gameScreen);
Gdx.app.log("Click", "performed"); // -> never happend
}
});
// add the button with a fixed width
table.add(play).width(500);
// then move down a row
table.row();
}
...
я решил или, по крайней мере, узнал, почему он не работает. Я создал экземпляр моего игрового мира с собственным InputProcessor, и когда я его не создаю, слушатель работает ... но теперь я должен выяснить, как использовать оба.
Для использования обоих вы можете использовать InputMultiplexer вместо addProcessor всех своих процессоров, а затем установить его на Gdx.input.setInputProcessor (inputMultiplexer). – Hllink