您的位置:首页 > 其它

深入理解SpriteSheet(精灵表单)概念

2012-07-17 13:35 169 查看
免责声明:本博客的所有原创文章,均有time_anime精心写作,供学习交流使用,切勿进行商业传播。同时,转载请不要移除本声明!

最近在学习cocos2d for iPhone,终于摸清了点头绪。

有一个概念和工具我感觉特别的喜欢,就是SpriteSheet和TexturePacker。

大家可以先看看这个视频和视频下面的文章,对精灵表单的剖析很到位,值得学习。视频估计要***才能看。这个视频真的很精彩,老外确实强大!

假如我们现在做一个动画,我们要把一张张的动画帧图片加到资源文件夹中,我的例子就是炮炮兵扭腰动画。它由8个动画帧组成(也就是8个图片)。我们可以基于这些单个的图片来创建动画。



这样做不是最优化的,浪费了大量的内存空间。往下看!


在cocos2d里面,还有另一种更加高效的方式来创建动画--那就是使用spritesheet。

每张图片有它的像素(pixel)大小,每个像素点都需要额外的内存空间来存储它的color,一般颜色都是32位的,RGBA的,占了四个字节。每张图片都需要额外的颜色空间,为什么不将所有的图片合成到一个image上呢。基于这样的需求,TexturePacker工具就诞生了。

这个工具可以将这这8个图片合成到一张image上面,并生成.plist文件,这个文件说明的是图片的名字和该动画帧在这个大image(这里说的大不是说图片占的空间大啊,而是容纳了8个炮炮兵)里的位置等信息。具体大家可以自己研究一下。合成的效果如下图所示:






怎么排列的这么乱!没关系,有plist文件给你配置好了动画帧的位置,你还怕你的动画是东倒西歪的啊!

最后,大家就可以在cocos2d里面使用这个纹理贴图集啦!非常的方便。我的下一篇教程就是讲如何在cocos2d里面用TexturePacker***可移动的炮炮兵动画的,欢迎大家关注。

使用SpriteSheet会使动画的运行效率更高,无需对每个纹理贴图进行渲染,直接对那个大image渲染一次即可。当然这个功能不仅仅是用来做动画的。当图片越多,优势就越明显。

这个可移动的是响应触摸事件的。顺便学习下cocos2d里面的touch处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: