TexturePacker 多图集管理器

455
投票支持!

TexturePacker 的多图集选项生成了大量文件?告诉这个管理器它们在哪里,它会给你一个函数,该函数可以获取每个图像的正确图集和帧索引,而无需你担心它们。

文档

getSheetAndFrame=multipackmanager.init("dataFileDir", "imageFileDir" , "dataFilePrefix" , "imgFilePrefix")
graphicsSheet, frameIndex = getSheetAndFrame("imageName")

或者为了方便起见
image=display.newImage(getSheetAndFrame("imageName"))

示例

假设你生成了一些图像图集,其中包含 "bob.png"、"alice.png" ... "cat.png" 这些图像。你的项目结构如下所示

  • root/
    • img/
      • sheetimg0.png, sheetimg1.png, ... sheetimgn.png <-- 所有带有 "bob.png" 等的图像
    • sheets/
      • info0.lua, info1.lua ... infon.lua <-- 包含帧信息的 Lua 文件

所以

  • Lua 文件位于 sheets 目录中,并带有 info 前缀。
  • 图像文件位于 img 目录中,带有 imagesheet 前缀。

鉴于此,你可以编写

local getSheetFrame=multipackmanager.init("sheets","img","info","sheetimg")
local alice=display.newImage(getSheetFrame("alice")) <-- *注意缺少 .png 扩展名。*
local cat=display.newImage(getSheetFrame("cat"))

注意

这假设你使用 TexturePacker 中的 Corona SDK (图像图集) 选项创建了文件。该代码还假设你没有命名你的资源,使得一组资源是另一组资源的前缀。例如,你有一组名为 a0.lua、a1.lua 等的文件,另一组名为 a_load_of_images0.lua、*a*_load_of_images1.lua 等的文件。

适用于 Corona 构建版本 #: 
2014.2382
贡献者: 
Personalnadir