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

免责声明:本博客的所有原创文章,均有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处理。




  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值