Кнопка — это просто актер в libgdx. Для рендеринга актера вы используете сцену, которая содержит всех актеров на экране, рендерит их и обновляет. Я предполагаю, что вам нужна кнопка с текстом, поэтому вы должны использовать класс TextButton и добавить его на сцену. TextButton принимает строку для рендеринга и ButtonStyle, в данном случае TextButtonStyle, который в основном представляет собой класс, содержащий всю информацию о кнопке (шрифт, который можно отрисовывать, пока он не нажат, который можно отрисовывать, когда он нажат и т. д.).
public class ButtonExample extends Game{
Stage stage;
TextButton button;
TextButtonStyle textButtonStyle;
BitmapFont font;
Skin skin;
TextureAtlas buttonAtlas;
@Override
public void create() {
stage = new Stage();
Gdx.input.setInputProcessor(stage);
font = new BitmapFont();
skin = new Skin();
buttonAtlas = new TextureAtlas(Gdx.files.internal("buttons/buttons.pack"));
skin.addRegions(buttonAtlas);
textButtonStyle = new TextButtonStyle();
textButtonStyle.font = font;
textButtonStyle.up = skin.getDrawable("up-button");
textButtonStyle.down = skin.getDrawable("down-button");
textButtonStyle.checked = skin.getDrawable("checked-button");
button = new TextButton("Button1", textButtonStyle);
stage.addActor(button);
}
@Override
public void render() {
super.render();
stage.draw();
}
}
Так что здесь происходит? Я создаю сцену, шрифт и текстурный атлас со всеми текстурами для кнопок в «buttons.pack». Затем я инициализирую пустой TextButtonStyle и добавляю шрифт и текстуры для состояний «вверх», «вниз» и «отмечено». font, up, down и checked — все это статические переменные типа Drawable, поэтому вы действительно можете передать любой вид Drawable (текстура, 9-патч и т. д.). Затем просто добавьте кнопку на сцену.
Теперь, чтобы что-то сделать, когда кнопка на самом деле нажата, вы должны добавить слушателя к кнопке, ChangeListener.
button.addListener(new ChangeListener() {
@Override
public void changed (ChangeEvent event, Actor actor) {
System.out.println("Button Pressed");
}
});
Конечно, вместо того, чтобы добавлять кнопку непосредственно в рабочую область, вы должны добавить ее в таблицу и добавить таблицу в рабочую область, но я не хотел делать этот пост слишком запутанным. Вот хорошее руководство по таблицам в libgdx.
01.02.2014
buttons.pack
? 01.02.2014.pack
. Найдите его в Google. 30.12.2015