私はこれに従いました: 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);
私の質問は、テーブルに必要なテクスチャの種類、そして何よりも、テーブルでどのようにそれらを使用するのでしょうか?
LibGDXのUIについては、以前使用していたもの(yaml、json、xml、UI Buildersなど)とは非常に異なることがわかります。
テーブルレイアウト-これが、Scene2d UIの構造とフォーマットの方法です。あなたが提供したリンクは素晴らしいチュートリアルですが、気付いたように、ほとんどのことをするためにスキンが必要です。
LibGDX Skin-テクスチャパックイメージ、テクスチャパックファイル、スタイルを設定するためのJsonの3つの要素で構成されます。あなたがしているようにプログラムでそれらを生成することもできますが、ファイルから単純にロードして使用する方がはるかに簡単です。スキンの作成方法や編集方法などについて詳しく知りたい場合は、このリンクに従ってください: Skins 。
さて、あなたが得ている例外に戻りましょう。これは、作成したスキンに、さまざまなUI要素のスタイルを記述するために使用されるjsonがないためです。上記の例外の場合、テキストフィールド内のラベルにはデフォルトのスタイルがありません。
簡単にできることは、testsフォルダーにあるテンプレートを使用することです。
これらのファイルをAndroidプロジェクトのassetフォルダーに配置します。そして、このスキンを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 },
}
うまくいけば、これはあなたが始めるのに役立つでしょう。他にも小さなことがたくさんあります。詳細については、ウィキの Scene2d.UI の記事をご覧ください。
注:gdx-tools
アーティファクトを使用して、 デフォルトのUIスキン out-of-theボックス.