游戏资源的脚本处理与Cocostudio二次拼图
- by Hector
目前已通过脚本实现游戏多版本资源处理,图片自动拼图加密,资源筛选同步,Icon,Spash,音效更新替换等等,总之只需一个脚本就可以处理所有有关资源的事情。
1.Cocostudio二次拼图与加密
看下代码不难发现cocos2d-x的所有图片资源都存在Texture内存里面,framespritecache存储了plist对应的小图资源,所有plist图片包括cocostudio最终都是通过SpriteFrameCache
的getSpriteFrameByName
函数得到。
Cocostudio的导出文件ExportJson中存储了所用到的plist文件路径,在加载ExportJson时,首先加载Plist资源。所以我们只要保证在cocostudio加载Plist之前将Plist手动加载好Cocostudio就可以通过SpriteFrameCache找到了,至于拼图与加密直接用TexturePacker加密和拼图了。而原来ExportJson中的Plist文件路径,你可以随便换个 已有的plist路径就可以了。
2.自动拼图
TexturePacker是一个非常好的拼图工具,选择好需要拼图的目录、格式、全局加密密码后,会生成一个tps配置文件,TexturePacker有个命令行工具TexturePacker Command Tools,安装好之后就可以运行TexturePacker xxx.tps
就可以自动拼图了。
3.搜索ExportJson文件并处理
利用find -exec cp
组合命令可以搜索设计目录下所有的ExportJson文件并拷贝出来,然后用find -exec sed
组合命令可以将ExportJson文件中Plist文件进行改名(原因见第一条内容)。
4.拼图的特殊处理
可能cocostudio有些特殊图片需要删掉(如PS生成文件也会拼图需要删掉,psd,psd.png),可以用find -exec rm
删掉,或者rsync --delete
同步时筛选出来。
可能一些特殊版本不需要某些资源,或者要将资源改名,可以用find -exec awk sed
组合命令改名。
5.资源与游戏资源目录同步
可以用rsync与游戏资源目录进行同步,包括音效,多语言文件,Icon,Splash等等,适当加一些排除,覆盖的参数。 如果是挑选的个别资源直接cp强制覆盖也可。
6.适当为脚本添加参数
如果游戏有多个版本,为脚本添加参数,可以根据条件方便的筛选资源,特殊处理,特殊拼图等等。