少し読んだだけで、TextureAtlas と TexturePackerの説明にたどり着きました。これは、小さな画像の束を 1 つの大きな画像に結合します。これにより、読み込みと描画が高速になります。Vikalp が言うように、パフォーマンスの違いを気にしない場合は、画像サイズに関するルールを無効にすることもできます。
Texture.setEnforcePotImages(false);
ゲーム アトラスの詳細については、Udacity の HTML5 ゲーム クラスを参照してください。
独自のアトラスを作成するには、TexturePacker GUIを使用して開始できますが、最終的にはコマンドライン プロジェクトを作成して、生の画像を自動的にパックすることをお勧めします。
バケツと雨滴のチュートリアルからサンプル コードを取得し、TextureAtlas の使用に切り替えるサンプル プロジェクトを投稿しました。次に、アトラスを読み込み、アトラスから画像を読み込みます。
atlas = new TextureAtlas(Gdx.files.internal("atlas/plank.pack"));
dropImage = atlas.findRegion("images/baby");
bucketImage = atlas.findRegion("images/bucket");
私が見つけた 1 つのバグは、画像が HTML プロジェクトに読み込まれないことです。すべての画像をサブフォルダーに入れることで、バグを回避できることがわかりました。
TexturePacker と、後で追加するユニット テストを保持する新しいプロジェクトを作成しました。テクスチャ パッカーは次のようになります。
package com.github.donkirkby.plank;
import com.badlogic.gdx.tools.imagepacker.TexturePacker2;
public class PlankPacker {
public static void main (String[] args) throws Exception {
TexturePacker2.process(
"raw-assets", // source folder
"../plank-game-android/assets/atlas", // destination
"plank.pack"); // data file
}
}