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

创建精灵表(也称为纹理集),而不是使用许多个别图像,这是到处都推荐的。我有数百张图像用于单词学习游戏;但有数百个单词,没有动画序列。因此,我已经生成了数据文件和精灵表,现在正在寻找如何根据原始图像文件名(存储在精灵表数据(lua代码)文件中(使用 Texture Packer 创建))创建所需的图像的示例。

这部分似乎是正确的:

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"。

现在,在我的生成的 lua 文件中,在“getSpritSheetData”函数下方有一条条目,类似于以下内容:

{
  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
},

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

我想得到一些东西,可以使我使用原始图像名称引用现在以精灵表形式存在的图像。这是可能的吗?例如:

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

原文链接 https://stackoverflow.com/questions/8964060

点赞
stackoverflow用户859481
stackoverflow用户859481

将下面翻译成中文并且保留原本的 markdown 格式:

The easy way is to create sheets with TexturePacker and use SpriteGrabber to take the sprites your need.

It's an awesome add-on to Corona-SDK which can be found here:

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

翻译结果:

简单来说,可以使用 TexturePacker 来创建图像表单,再使用 SpriteGrabber 来提取需要的精灵图片。

这是 Corona-SDK 的一个牛逼插件,其下载地址在此:

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

2012-01-23 19:53:27