使用原始图像文件名从精灵表创建图像

时间:2012-01-22 19:42:51

标签: lua sprite corona sprite-sheet

建议在任何地方创建精灵表,即纹理地图集,而不是使用多个单个图像。我有数百个图像用于单词学习游戏;但是有数百个单词,没有动画序列。因此,在生成数据文件和精灵表之后,我正在寻找一个如何在需要时从原始图像文件名创建图像的示例(存储在精灵表数据(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]是一个放在sqlite表中的数组中的值,例如“sit_word100.png”。

现在在'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
},

我可以看到所有我的图像文件名现在都存储在数据中,以提供一种在精灵表中引用我的图像的方法,但由于我不想使用“精灵集”,我找不到在eed中获取一个图像的一个例子。

我想要的东西允许我使用原始图像名称来引用我现在的spritesheet-ified图像。这可能吗?例如

t1 =    display.newImage(CN_70_tiles_corona.getSpriteSheetData(name = "sit_word100.png") 

1 个答案:

答案 0 :(得分:1)

简单的方法是使用TexturePacker创建工作表,并使用SpriteGrabber来获取您需要的精灵。

这是Corona-SDK的一个很棒的附加组件,可以在这里找到:

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