著名的图片打包软件,只要是做游戲应用开发几乎都会或多或少的用到它。
使用TexturePacker更多的性能优势在于手游上因为无论Android或者ios系统使用的是OpenGL ES来渲染,所以我们要针对OpenGL ES来进行優化
第一点:内存方面,OpenGL
ES纹理要求宽和高都是2的n次幂的倍数就是说,若start.png这张图片本身是480X320的话那它在载入内存后其实是一张512X512的纹理。那它具体占用了多少内存呢默认情况下,当在Cocos2D里加载一张图片时对于每一个像素点使用4个字节(1个byte即8bit)来表示——分别代表red\green\blue\alpha透明通道,简称RGBA8888这样的话,这张start.png图片在使用默认像素格式下所占内存为:512*512*4=1MB所以我们可以考虑将小的图片拼成到大的图片,然后一起加载
第二點:渲染速度方面,OpenGL ES要求尽量减少渲染时切换纹理和glDrawArray的呼叫所以将图片拼成大图片,这样就减少了纹理的切换所以使用TexturePacker是很有必要的。
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里面詓读取这些精灵的时候,这些透明区域仍然在寻里(因为,有些情况下你可能需要这些信息来确定精灵的位置)