1

スプライトで鮮明なグラフィックスをレンダリングするために、すべての解像度サイズに専用のスプライト フォルダーを用意することにしました。このようなフォルダーが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 個のスプライトを参照するようになり、ゲームは正常に実行されるはずですが、面倒です。

4

2 に答える 2