cocos2d-x开发游戏时,使用Texture packer来合并图片
Texture packer的确比Zwoptex更加强大,功能更多,跨平台,在使用cocos2d-x在win32下开发的时候,能够在win32下使用的优点就更加明显了。何况Zwoptex以前是完全免费的,在用户多了以后坑爹般的开始收费了,连个可用的免费版本都没有(只有自己保留的老版本可用),而Texture packer一直有可用的免费版本,虽然Pro版本贵的离谱(对于中国人来说,100多块钱的工具太贵了,但是对于美国人来说又很便宜)。另外,假如你是博客作者或者是框架开发者,可以向作者申请免费的license,我的确收到了。有意思的是,作者后来以做SEO为由,要求我添加以Sprite Sheet Maker为文字的链接,链接到他们网站,真让人感叹,天下没有免费的午餐啊~~~~
Texture packer的主界面如下:
1.Add Sprites
上图中的样子就是用Add sprite功能,添加了cocos2d的示例图片后的样子。texture packer能够自动的用较为优化的算法来排列图片,使得占用空间尽量的少,作为初级版本,没有一些包括裁剪在内的高级功能(在强行使用高级功能后,会有提示,也可以导出图片,但是会随机在某些图片上印上一些英文文字)
2.设置导出文件的位置
这个位置是一个绝对位置,此时可以保存一份texture packer的工程。这个工程会记录这个导出的位置。有一点用户体验非常好的地方是设置了plist的位置后,texture的为止texture packer会自动生成一个。
3.导出
点击publish按钮即可。将来在原始图片更改的时候,直接载入这个工程,然后也只需要再次点击public按钮即可,会同时生成plist和texture文件。相当易用。
Enable auto alias非常有用,可以将相同的图片自动合并,对于三维导出的序列帧和flash自动导出的序列帧动画,常常可以节省很多空间。
到目前为止,这已经很强大了。但是Texture packer的强大不仅如此,手工编辑再方便,也不如自动化来的快~~~~
Texture packer在安装后,在安装目录下(windows)会有一个叫texture packer的可运行文件,直接将刚才生成的tps文件作为参数传进去,就能自动的生成~~~再配合VS或者XCode的工程配置,完全可以做到生成程序的时候对texture的全自动化处理。(不过这个需要pro的license)
4.程序中的使用
先通过以下接口预加载
void CCSpriteFrameCache::addSpriteFramesWithFile(const char *pszPlist)
然后通过以下接口使用:
CCSpriteFrame* CCSpriteFrameCache::spriteFrameByName(const char *pszName)
CCSprite* CCSpriteFrameCache::createSpriteWithFrameName(const char *pszName)
CCSpriteFrameCache本身是个单件。
分类:
iOS
游戏开发
标签:
cocos2d-x
Texture packer
Posted By 九天雁翎 at 九天雁翎的博客 on 2011年08月24日