2012-01-22 4 views
1

Рекомендуется создавать листы спрайтов aka текстурные атласы, а не использовать множество изображений отдельных изображений. У меня есть сотни изображений для словной игры; но есть сотни слов, без анимационных последовательностей. Таким образом, создав файл данных и лист спрайтов, я ищу пример создания образа, когда это необходимо, из имени исходного файла изображения (как хранится в файле данных спрайта (lua code) (оба созданы с помощью пакета текстур) .Создание изображения с листа спрайта с использованием имени исходного изображения

Это очень похоже, прав:

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") 
+0

Обновление: я нашел/Objective C Cocos2D ответ IOS на [ссылка] (HTTP: // allseeing- i.com/Performance-tips-for-Cocos2d-for-iPhone), который показал: 'CCTexture2D * texture = [[CCTextureCache sharedTextureCache] addImage: @" myatlastexture.png "]; CCSprite * sprite = [CCSprite spriteWithTexture: texture rect: CGRectMake (0,0,32,32)]; 'Так что я ищу версию Lua. будет проверять документы с этой подсказкой. – hangzhouharry

+0

Этот вопрос также задал здесь: [link] (http://stackoverflow.com/questions/5655055/corona-create-regular-display-objects-from-sprite-sheets), но ответил в temrs SpriteSet. Argh. не хотите создавать один фрагмент spriteset - это ответ? – hangzhouharry

ответ

1

Простой способ создать листы с TexturePacker и использовать SpriteGrabber взять спрайты вашу потребность.

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

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

+0

Andreas: Мне нравится ваш Texturepacker - вот почему у меня есть спрайты для работы. Я купил его и редактор физики тоже для хорошей оценки для комбо. Фантастический и простой в использовании. Много простых вариантов. Мне просто нужен образец кода в lua, который вытаскивает спрайты с большого листа. SpriteGrabber является ТОЧНО решением !! @ спасибо! – hangzhouharry

+0

красивый спрайт граббер. @hangzhouharry, вы должны принять ответ, если он будет полезен. – cctan

Смежные вопросы