Создание изображения из листа спрайта с использованием исходного имени файла изображения - PullRequest
1 голос
/ 22 января 2012

Рекомендуется везде создавать спрайт-листы, то есть текстурные атласы, а не использовать множество сотен отдельных изображений.У меня есть сотни изображений для игры в слова;но есть сотни слов, никаких анимационных последовательностей.Таким образом, сгенерировав файл данных и спрайт-лист, я ищу пример того, как создать изображение при необходимости из исходного имени файла изображения (как хранится в файле данных спрайт-листа (код 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".

теперь в моем файле генерации 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
},

я могу видеть, что ВСЕ имена моих файлов изображений теперь хранятся в данных, чтобы обеспечить способ ссылаться на мое изображение в листе спрайтов, но так как я НЕ хочу использовать "наборы спрайтов",я не могу найти пример получения одного изображения в момент его просмотра.

Я хочу что-то, что позволило бы мне сослаться на мое теперь изображение в spritesheet с использованием исходного изображения nAME.Это возможно?например,

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

1 Ответ

1 голос
/ 23 января 2012

Самый простой способ - создать листы с помощью TexturePacker и использовать SpriteGrabber, чтобы получить нужные вам спрайты.

Это замечательное дополнение к Corona-SDK, которое можно найти здесь:

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

...