
[历史归档]本文原发布于 cstriker1407.info 个人博客内容为历史存档仅供参考。发布时间2014-01-21 标题cocos2dx学习笔记TexturePacker的使用分类编程 / C C / cocos2dx 标签cocos2dx·texturepackercocos2dx学习笔记TexturePacker的使用TexturePacker的下载和激活TexturePacker的使用**1、为什么要用这个工具呢有什么好处****2、认识TexturePacker的界面****3、程序中更改资源加载方式**备注最近项目中用到了cocos2dx来开发一个基于陀螺仪的demo忙了半个星期一边学习一边开发总算搞了出来。这里备份下开发中学习到的一些cocos2dx知识。TexturePacker的下载和激活官方地址【 http://www.codeandweb.com/texturepacker 】免费申请Key的地址比较有意思【 http://www.codeandweb.com/request-free-license 】TexturePacker的使用以下转自【 http://blog.csdn.net/aa4790139/article/details/8107325 】1、为什么要用这个工具呢有什么好处第一点内存问题, OpenGL ES 纹理的宽和高都要是2次幂数, 以刚才的例子来说, 假如 start.png 本身是 480x320, 但在载入内存後, 它其实会被变成一张 512x512 的纹理, 而start.png 则由 101x131 变成 128x256, 默认情况下面当你在cocos2d里面加载一张图片的时候对于每一个像素点使用个byte来表示–个byte位代表red另外个byte分别代表green、blue和alpha透明通道。这个就简称RGBA8888。因此如果你使用默认的像素格式来加载图片的话你可以通过下面的公式来计算出将要消耗多少内存来加载图像宽度width×图像高度height×每一个像素的位数bytes per pixel 内存大小此时如果你有一张×的图片那么当你使用默认的像素格式去加载它的话那么将耗费××MB好多啊**第二点**再看看关於渲染速度方面, OpenGL ES 上来说我们应该尽量减少渲染时切换纹理和 glDrawArray 的呼叫, 刚才的例子每画一个图像都会切换一次纹理并呼叫一次 glDrawArray , 我们这里只画3样东西, 所以不会看到有什麽问题, 但如果我们要渲染几十个甚至几百个图像 , 速度上就会被拖慢. 很明显这并不是我们所想要的…估计就这两点就说服了你吧~ 至少我是了…呵呵2、认识TexturePacker的界面****我框出来的都是我们常用和一些必须点到的地方**Data Format:**导出什么引擎数据默认cocos2d,下拉列表中有很多基本常用的引擎都支持了**Data File *导出文件位置(后缀名.plist)**Texture Format:**纹理格式,默认png**Image format:**图片像素格式默认RGBA8888…根据对图片质量的需求导出不同的格式**Dithering:**抖动,默认NearestNeighbour,(如果图像上面有许许多多的“条条”和颜色梯度变化)将其修改成FloydSteinbergAlpha;Scale:让你可以保存一个比原始图片尺寸要大一点、或者小一点的spritesheet。比如如果你想在spritesheet中加载“2x的图片也即为Retina-display设备或者ipad创建的。但是你同时也想为不支持高清显示的iphone和touch制作spritesheet这时候只需要设置scale为 1.0,同时勾选autoSD就可以了。也就是说只需要美工提供高清显示的图片用这个软件可以自己为你生成高清和普清的图片。**Algorithm TexturePacker:**里面目前唯一支持的算法就是MaxRects即按精灵尺寸大小排列但是这个算法效果非常好因此你不用管它。Border/shape padding:即在spritesheet里面设置精灵与精灵之间的间隔。如果你在你的游戏当中看到精灵的旁边有一些“杂图”的时候你就可以增加这个精灵之间的间隔。Extrude:精灵边界的重复像素个数. 这个与间隔是相对应的–如果你在你的精灵的边边上看到一些透明的小点点你就可以通过把这个值设设置大一点。Trim:通过移除精灵四周的透明区域使之更好地放在spritesheet中去。不要担心这些透明的区域仅仅是为了使spritesheet里面的精灵紧凑一点。–当你从cocos2d里面去读取这些精灵的时候这些透明区域仍然在寻里。因为有些情况下你可能需要这些信息来确定精灵的位置Shape outlines:把这个选项打开那么就能看到精灵的边边。这在调试的时候非常有用。**AddSprite:添加图片Add Folder:**根据文件夹添加图片**Publish**导出资源文件.plist和png3、程序中更改资源加载方式//第一种加载资源方式//CCSprite* spriteCCSprite::create(start.png);//第二种加载资源方式CCSpriteFrameCache*cacheCCSpriteFrameCache::sharedSpriteFrameCache();cache-addSpriteFramesWithFile(image.plist,image.png);CCSprite*spriteCCSprite::spriteWithSpriteFrameName(start.png);备注另一篇网址【 http://www.cnblogs.com/andyque/archive/2011/03/18/1988097.html 】