46

私はこれに従ってきました: https://code.google.com/p/table-layout/#Quickstartで LibGDX のテーブルを少し紹介します。私はすでにボタンを少し試しました。

今、私はこのコードを持っています:

Label introLabel = new Label("Skip Intro", skin);
TextField introText = new TextField("", skin);

table.add(introLabel);
table.add(introText).width(100);
table.row();

しかし、それは次のNullPointerException理由でスローします:No com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle registered with name: default

ボタンを(画面の別の場所から)スキンに追加しただけです。

atlas = new TextureAtlas("assets/gui/buttons/alpha_generic_buttons.pack");

skin = new Skin();
skin.addRegions(atlas);

私の質問は、テーブルに必要なテクスチャの種類と、テーブルでそれらをどのように使用するかということです。

4

2 に答える 2

91

libGDX の UI に関しては、以前に使用していたもの (yaml、json、xml、UI ビルダーなど) とは大きく異なることがわかります。

テーブル レイアウト- これは、Scene2d UI がどのように構造化され、フォーマットされているかです。あなたが提供したリンクは素晴らしいチュートリアルですが、ほとんどのことを行うにはスキンが必要であることに気づきました。

LibGDX スキン- テクスチャ パック イメージ、テクスチャ パック ファイル、およびスタイルを設定する Json の 3 つで構成されます。あなたがやっているようにプログラムでそれらを生成することもできますが、ファイルからロードして使用する方がはるかに簡単だと思います. スキンの作成方法や編集方法などについて詳しく知りたい場合は、次のリンクをたどってください:スキン.

ここで、取得している例外に戻ります。これは、作成したスキンに、さまざまな UI 要素のスタイルを記述するために使用される json がないためです。上記の例外の場合、テキスト フィールド内のラベルにはデフォルトのスタイルがありません。

簡単にできることは、tests フォルダーにあるテンプレートを使用することです。

  1. Atlaspack ファイル
  2. Json ファイル
  3. アトラスパック画像
  4. フォント画像
  5. フォントファイル

これらのファイルを Android プロジェクトの assets フォルダーに配置します。そして、このスキンを 1 行のコードで簡単にロードできます。

Skin uiSkin = new Skin(Gdx.files.internal("uiskin.json"));

これには、 TextField オブジェクトを作成するための不足している情報と、その他のデフォルト スタイルが含まれます。

com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: {
    default: { font: default-font, fontColor: white },
}

うまくいけば、これはあなたが始めるのに役立ちます. 他にも多くの小さなものがあるので、詳細については、Wiki のScene2d.UI記事を参照することを恐れないでください。

注:gdx-toolsアーティファクトを使用して、デフォルトの UI スキンをすぐに使用できるようにすることができます(非常に小さい/単純なアプリケーション、デバッグ、UI を表示することが本当に急いでいる場合に非常に役立ちます)など)。

于 2013-04-24T07:42:48.580 に答える
1

または、独自のスキンを作成したい場合は、Raleus がスキン エディターを作成しました。とてもフレンドリーな UI で、使いやすく、結果は素晴らしい https://github.com/raeleus/skin-composerスキンとその使用方法についてさらに詳しく

于 2020-04-09T21:46:42.067 に答える