web-dev-qa-db-ja.com

デフォルトスキンLibGDX?

私はこれに従いました: 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);

私の質問は、テーブルに必要なテクスチャの種類、そして何よりも、テーブルでどのようにそれらを使用するのでしょうか?

42
AreusAstarte

LibGDXのUIについては、以前使用していたもの(yaml、json、xml、UI Buildersなど)とは非常に異なることがわかります。

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

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

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

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

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

これらのファイルを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ボックス.

85
Jyro117