スプライトで鮮明なグラフィックスをレンダリングするために、すべての解像度サイズに専用のスプライト フォルダーを用意することにしました。このようなフォルダーが55個あり、各フォルダーには57個の.png
ファイルが含まれています(つまり、合計数は 57*55 = 3135 個のファイルです)。55 個のフォルダーすべてを 1 つのフォルダーに入れ、Texture Packer
そのフォルダーで実行します。出力フォルダーに、1pack.atlas
ファイルと 212 packX.png
ファイルを取得します (X は 1 から 212 まで実行されます)。
私のコードでは、これらのフィールドをAssets
クラスに作成します
private static TextureAtlas atlas;
private static Sprite logo;
// ... total of 57 Sprite fields....
Assets
また、ゲームの開始時に呼び出されるクラスの初期化メソッドでは、次のようになります。
atlas = new TextureAtlas(Gdx.files.internal("pack.atlas"));
logo = atlas.createSprite(getWidthPath() + "logo"); //getWidthPath() returns the appropriate folder path based on the resolution size. As stated above, there are 55 such folder
//...atlas.createSprite 57 times for 57 fields....
少数のフォルダー (3 フォルダー) に対してこれを実行しましたが、ゲームは正常に動作します。ただし、55 個の解像度フォルダーすべてをサポートすることにしたとき、ゲームは Android ではロードできず、デスクトップではロードできますが、最初は非常に遅くなりました。
pack.atlas
ファイルによって参照される多数のスプライトが原因でハングしたというのは本当ですか?
TexturePacker
各解像度フォルダーで実行すると、 pack.atlas
(1 ではなく) 55 個のファイルが取得され、各pack.atlas
ファイルは (3135 個のファイルではなく) 57 個のスプライトを参照するようになり、ゲームは正常に実行されるはずですが、面倒です。