何百もの個別の画像を使用するのではなく、テクスチャ アトラスとも呼ばれるスプライト シートを作成することをお勧めします。単語学習ゲーム用に何百もの画像があります。しかし、何百もの単語があり、アニメーション シーケンスはありません。データ ファイルとスプライト シートを生成したので、元の画像ファイル名 (スプライト シート データ (lua コード) ファイル (両方ともテクスチャ パッカーで作成) に格納されている) から必要に応じて画像を作成する方法の例を探しています。 .
これはかなり正しいようです:
local sprite = require("sprite")
local CN_70_tiles_corona = require("CN_70_tiles_corona")
local spriteDataCN = CN_70_tiles_corona.getSpriteSheetData()
local spriteSheet = sprite.newSpriteSheetFromData( "CN_70_tiles_corona.png", spriteDataCN )
スプライト シートを作成する前に、次のようなイメージを作成します。
t1 = display.newImage(cnTiles[tileNO])
たとえば、cnTiles[1] は、「sit_word100.png」などの sqlite テーブルから配列に配置された値です。
「getSpritSheetData」関数の下に生成されたluaファイルに、次のようなエントリがあります。
{
name = "sit_word100.png",
spriteColorRect = { x = 0, y = 0, width = 69, height = 69 },
textureRect = { x = 2, y = 2, width = 69, height = 69 },
spriteSourceSize = { width = 69, height = 69 },
spriteTrimmed = false,
textureRotated = false
},
スプライト シート内の画像を参照する方法を提供するために、すべての画像ファイル名がデータに保存されていることがわかりますが、「スプライト セット」を使用したくないため、次の例が見つかりません。必要なときに1つの画像を取得するだけです。
元の画像名を使用して、現在スプライトシート化されている画像を参照できるものが必要です。これは可能ですか?例えば
t1 = display.newImage(CN_70_tiles_corona.getSpriteSheetData(name = "sit_word100.png")