Cocos精灵帧缓存
2016-03-28 16:01
543 查看
一般来说,精灵帧由plist(描述文件)和一张大图组成。(可以用TexturePacker——一种专业软件将若干小图生成一份精灵帧)
精灵帧缓存:也是单例
SpriteFrameCache* cache =
SpriteFrameCache::getInstance();
添加精灵帧缓存(plist文件):cache->addSpriteFramesWithFile("animations/grossini_blue.plist");//addSpriteFramesWithFile会自动解析plist文件,将plist中描述的所有精灵帧加载到内存
获取精灵帧:SpriteFrame* frame = cache->getSpriteFrameByName("grossini_blue_01.png");注意这里的参数是plist中的小图片名称
使用精灵帧:Sprite* sprite =
Sprite::createWithSpriteFrame(frame);参数是纹理名
或者: Sprite* sprite =
Sprite::createWithSpriteFrameName("grossini_blue_01.png");这里的参数也是plist中的小图片名称
删除精灵帧:removeSpriteFrameByName()——单个清除 emoveSpriteFrames()——全清除
removeSpriteFrameFromFile(plist)——按文件清除
删除工作常常用在场景切换时删除旧场景缓存。
和纹理缓存的关联:
当精灵帧缓存的plist文件添加之后,大图就被添加到了纹理缓存中去了,而精灵帧缓存中就存留了一个个小图的信息,包括小图的Texturre2D对象(即小图本身)以及其位置信息Rect对象,此外还有小图对大图的retain引用关联(就是为了防止纹理缓存清除之后大图消失)。故此每一张大图都被其小图们引用着。那么在切换时必然也要清除精灵帧缓存了。
相关文章推荐
- Cocos纹理缓存
- 【cocos2d-x制作别踩白块儿】第一期:游戏介绍
- cocos2dx3.3 CCNotificationCenter观察者模式
- [Cocos2d-x v3.x官方文档]精灵帧缓存(SpriteFrameCache)
- Cocos2d-x LoadingBar(进度条)的使用
- cocos2d-x触摸事件优先级的探究与实践
- [Cocos2d-x v3.x官方文档]纹理缓存
- Cocos2d-x 3.2 打包Android平台APK
- Cocos 资料大全 下载链接地址
- 总结Cocos2d-x 3.0 中新字体标签Label
- 骨骼动画详解-Cocos Studio
- cocos2d-x中的plist文件格式详解
- Cocos2d 3.0继承自Sprite的类在addChild后出现故障
- cocos2d-x 3D shader的纹理坐标是上下颠倒的
- cocos2d-x3.9 NDK android 环境搭建过程中遇到的错误
- 菜鸟学习Cocos2d-x 3.x——浅谈事件处理机制
- cocos2d-x 事件分发机制 ——加速计事件监听
- cocos2dx 利用CCOrbitCamera实现扑克牌翻牌效果
- cocos2dx-3.0(33) 中的缓存TextureCache、SPriteFrameCache、AnimationCache
- 网狐6603 cocos2dx 棋牌、捕鱼、休闲类游戏《李逵捕鱼》手机端完整源码分析及分享