Cocos2dx CCSprite CCSpriteFrame CCTexture2D CCAnimation学习总结

Cocos2dx CCSprite CCSpriteFrame CCTexture2D CCAnimation学习总结,第1张

概述1. CCTexture2D    CCSpriteFrame   CCSprite   三者之间的关系 CCTexture2D   是贴图纹理, 是缓存到GPU中的图片数据。 CCSpriteFrame  是相对于动画来说的概念,代表动画中“帧”,CCSpriteFrame  是贴图纹理CCTexture2D中某块区域,或者这个贴图纹理。 CCTexture2D  和 CCSpriteFrame 1.CCTexture2D CCSpriteFrame CCSprite 三者之间的关系

CCTexture2D 是贴图纹理, 是缓存到GPU中的图片数据。

CCSpriteFrame 是相对于动画来说的概念,代表动画中“帧”,CCSpriteFrame 是贴图纹理CCTexture2D中某块区域,或者这个贴图纹理。

CCTexture2D 和CCSpriteFrame 都是我们看不到的, 我们真正能看到的 应该是CCSprite。

CCSprite 是显示到场景中的精灵, 是被实际画出来的东西, 那CCSprite 和CCTexture2D ,CCSpriteFrame 又有什么关系呢?

下面我将给你们来介绍。


CCSprite 的创建方式有如下几种

1.CCSprite 可以通过 图片的路径来创建。

2,CCSprite 可以通过 CCSpriteFrame 来创建

3,0)">CCTexture2D 来创建


其实上面三种创建方式 ,最后的函数调用都是通过CCTexture2D ,来创建一个 CCSprite.

最后都会掉到如下函数

所以总的来说,CCSprite的创建 是通过 缓存在GPU中的 贴图纹理来实现的。



2. 介绍一下 与CCSprite CCSpriteFrame CCTexture2D 有关的,能提高效率的一些缓存单例类
CCSpriteFrameCache 精灵帧缓存类,通过.pList 和 .png图片 来缓存了一些CCSpriteFrame的对象, 这个类解决碎图问题, 大大提高了效率, 通过一些工具
把一些碎图 (小图片)整合到一张大图片中,通过加载一次贴图纹理,就把所有的整合到大图中的图片 加载了进去,缓存到CCSpriteFrameCache 对象中,以后
就可以通过碎图的名字,从CCSpriteFrameCache 对象中 获取 精灵帧对象。 然后可以使用获取的精灵帧做其他处理

CCTextureCache 贴图纹理缓存类, 这个类可以把一些图片加载到GPU之后, 缓存起来, 以后直接取就可以了。


接下来要说说的 ,我感觉比较重要的两个类 CCSpriteBatchNode CCTextureAtlas,这两个类只所以重要,是因为它们大大提高了渲染效率。
举例来说,如果你想创建1000个一样精灵图片,你有可能创建1000个CCSprite, 这样也是可以的。
但是引擎在渲染的时候要渲染1000次(调用1000次CCSprite draw方法)。
如果使用 CCSpriteBatchNode 只需渲染一次(调用1次CCSpriteBatchNode draw方法),重要绘画显示而是使用 CCTextureAtlas对象中drawNumberOfQuads方法。
drawNumberOfQuads方法会把所有要显示的精灵显示出来。

CCSpriteBatchNode 通常也是加载一张包括很多碎图的大图片, 然后获取这些碎图精灵 添加到CCSpriteBatchNode对象中。

3. CCAnimition 和 CCSpriteFrame 之间的关系

我的理解是CCAnimation 是个动画,不过是个静态容器, 这里面存储一些静态的 CCSpriteFrame 和一些帧间 隔时间之类的信息。 而是不能播放的, 如果要播放必须通

过CCAnimate类来实现, 这个才是播放动画的类。



如上是我的一些学习总结,有什么不对的 ,欢迎指正, 共同学习进步。

总结

以上是内存溢出为你收集整理的Cocos2dx CCSprite CCSpriteFrame CCTexture2D CCAnimation学习总结全部内容,希望文章能够帮你解决Cocos2dx CCSprite CCSpriteFrame CCTexture2D CCAnimation学习总结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1045371.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存