Чтобы загрузить скин, вы можете начать с файлов скинов образца, используемых в тестовом проекте libgdx.
- Atlaspack File
- Json File
- Atlaspack Image
- Font File
Там немного более подробно в this question, и я обнаружил, что мне пришлось перенести файлы в подкаталог активов, чтобы избежать ошибка в версии HTML. (Если я оставляю файлы в папке с ресурсами, я вижу сообщение об ошибке вроде: «GwtApplication: exception: Ошибка чтения данных файла/uiskin.json.»)
Я разместил complete example, который отображает одну кнопку, и интересную код - все в game class. Пример настолько прост, что вам нужны только две переменные-члены, чтобы удерживать сцену и кнопку.
private Stage stage;
private TextButton button;
Для создания скина вы просто загружаете файл данных.
Skin skin = new Skin(Gdx.files.internal("data/uiskin.json"));
Провести кнопку на сцену.
stage = new Stage();
button = new TextButton("Click Me!", skin);
stage.addActor(button);
Подключите слушателя к кнопке и зарегистрируйте этап для приема событий.
button.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
button.setText("Clicked!");
}
});
Gdx.input.setInputProcessor(stage);
render()
метод в основном призыв к stage.draw()
.
Gdx.gl.glClearColor(1, 1, 1, 1);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
stage.act(Math.min(Gdx.graphics.getDeltaTime(), 1/30f));
stage.draw();
Тогда вам просто нужно развернуть экран при изменении размера.
button.setPosition(
(width-button.getWidth())/2,
(height-button.getHeight())/2);
Если экран является более сложным, рассмотреть вопрос об использовании Table.
Если вы хотите использовать другой шрифт, вы можете сгенерировать файл шрифта и файл изображения с помощью Hiero. После того, как вы это сделали, вам придется взять новый шрифт и использовать TexturePacker, чтобы переупаковать его другим skin assets.