スキンをロードするには、libgdxテストプロジェクトで使用されているサンプルスキンファイルを使用します。
- Atlaspack File
- Json File
- Atlaspack Image
- Font File
あり、もう少し詳しくはthis questionにだ、と私は避けるために、資産のサブディレクトリにファイルを移動するために持っていたことが分かりましたHTML版のバグ。 (ファイルをassetsフォルダに残しておけば、「GwtApplication:exception:ファイルデータを読み込む際のエラー/ uiskin.json」というエラーメッセージが表示されます)complete exampleは1つのボタンを表示し、面白いコードはすべてgame classです。この例は非常に単純なので、シーンとボタンを保持するために2つのメンバ変数が必要です。
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を使用してもう1つのskin assetsでそれを再パックする必要があります。