Aby załadować skórkę, można rozpocząć od przykładowych plików karnacji użytych w projekcie testowym libgdx.
- Atlaspack File
- Json File
- Atlaspack Image
- Font File
Jest nieco bardziej szczegółowo w this question i znalazłem, że muszę przenieść pliki do podkatalogu aktywów, aby uniknąć błąd w wersji HTML. (Jeśli zostawiam pliki w folderze zasobów, pojawi się komunikat o błędzie, taki jak "GwtApplication: wyjątek: błąd odczytu danych pliku/uiskin.json.")
Wysłałem complete example, który wyświetla jeden przycisk, a interesujący kod znajduje się w game class. Przykład jest tak prosty, że potrzebne są tylko dwie zmienne składowe do przechowywania sceny i przycisku.
private Stage stage;
private TextButton button;
Aby utworzyć skórkę, wystarczy załadować plik danych.
Skin skin = new Skin(Gdx.files.internal("data/uiskin.json"));
Podłącz przycisk do sceny.
stage = new Stage();
button = new TextButton("Click Me!", skin);
stage.addActor(button);
drutu słuchacza do przycisku i zarejestrować scenę aby otrzymywać wydarzenia.
button.addListener(new ClickListener() {
@Override
public void clicked(InputEvent event, float x, float y) {
button.setText("Clicked!");
}
});
Gdx.input.setInputProcessor(stage);
Sposób render()
jest zasadniczo wezwaniem do 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();
Następnie wystarczy zmienić układ ekranu podczas zmiany rozmiaru.
button.setPosition(
(width-button.getWidth())/2,
(height-button.getHeight())/2);
Jeśli twój ekran jest bardziej skomplikowany, rozważ użycie Table.
Jeśli chcesz użyć innej czcionki, możesz wygenerować plik czcionki i plik obrazu za pomocą Hiero. Gdy to zrobisz, będziesz musiał pobrać nowy obraz czcionki i użyć TexturePacker, aby zapakować go ponownie z innym skin assets.