2

を使用してNinePatches をパックできることを確認しました。私もこれこれを見ました。しかし、それが正しいかどうかはわかりません。すべての GUI 要素を 1 つにまとめたいのですが、GUI 要素は だけでなく、いくつかの も含まれています。s とs を 1 つに結合することは可能ですか? デフォルト設定を使用することはできますか、それとも、ファイルでなどのカスタム設定を行う必要がありますか? そして、私のゲームでは、を使用してロードできますか、それともすべてをs として保護し、それから を作成する方がよいでしょうか?TextureAtlasTexturePacker2TextureAtlasNinePatchTextureRegionNinePatchTextureRegionTextureAtlaspaddingXpaddingY.JSONNinePatchatlas.createPatch("patchimagename");TextureRegionNinePatch

4

1 に答える 1

4

に使用するファイル構造があると想像してみましょうTexturePacker2:

images/
  image1.png
  image2-ninepatch.png   <-- this is NinePatch
  image3.png

NinePatchファイルの拡張子を(.pngたとえば)から.9.png(必要に応じて1pxの境界線を追加して)に変更するだけです。

images/
  ...
  image2-ninepatch.9.png
  ...

Skinこの後、テクスチャをラップして簡単に抽出するためNinePatchに使用できます。TextureRegionAtlas

TextureAtlas atlas = ... // load the Atlas
Skin skin = ... // create some root skin or use created one
skin.addRegion(atlas); // register atlas in skin

さらに、1 つのスキンに多くのアトラスを追加できます。

これで、次のことができます。

  1. 名前で取得TextureRegion:

    public TextureRegion getRegion(String region)
    {
        return skin.getRegion(region);
    }
    
  2. 名前で取得NinePatch:

    public NinePatch getNinePatch(String region)
    {
        return skin.getPatch(region);
    }
    
  3. このスキンを使用する UI コンポーネント (ボタンの背景など) で画像 (TextureRegionまたは) を使用することもできます。NinePatch

お役に立てば幸いです。

于 2014-02-05T16:38:09.703 に答える