1

何百もの個別の画像を使用するのではなく、テクスチャ アトラスとも呼ばれるスプライト シートを作成することをお勧めします。単語学習ゲーム用に何百もの画像があります。しかし、何百もの単語があり、アニメーション シーケンスはありません。データ ファイルとスプライト シートを生成したので、元の画像ファイル名 (スプライト シート データ (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") 
4

1 に答える 1

1

簡単な方法は、TexturePacker でシートを作成し、SpriteGrabberを使用して必要なスプライトを取得することです。

これは、Corona-SDK のすばらしいアドオンで、次の場所にあります。

http://developer.anscamobile.com/code/spritegrabber-spritesheets-two-lines

于 2012-01-23T19:53:27.240 に答える