スキンをロードするには、libgdx テスト プロジェクトで使用されるサンプル スキン ファイルから開始できます。
- Atlaspack ファイル
- Json ファイル
- アトラスパック画像
- フォントファイル
この質問にはもう少し詳細があり、HTML バージョンのバグを回避するには、ファイルをアセットのサブディレクトリに移動する必要があることがわかりました。(assets フォルダーにファイルを残すと、「GwtApplication: exception: Error reading file data/uiskin.json.」のようなエラー メッセージが表示されます。)
1 つのボタンを表示する完全な例を投稿しました。興味深いコードはすべてゲーム クラスにあります。この例は非常に単純であるため、シーンとボタンを保持するために必要なメンバー変数は 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を使用して他のスキン アセットと共に再パックする必要があります。