Cocos缓存的实现
2016-03-28 16:02
459 查看
Texture2D*> _textures;的一个map映射中,显然,string就是其文件名称。这里的map是不会添加引用计数的
纹理缓存实现主要是看addImage()函数实现,其首先根据文件路径创建一个全路径,之后查看是否已经缓存过,如果是的话则获取这个纹理,反之,则加载该纹理,将数据存入Image对象中(newImage(image)-> initWithImage(image)->
initWithImage(image,g_defaultAlphaPixelFormat)->设置宽高属性(由initWithPng提供宽高)->测定是否超出额定宽高(4096x4096)->其他属性->如果该文件不能解压缩,则提醒,否则解压缩->将像素转换成渲染模式(convertDataToFormat)->initWithData()成功,保存入map中
精灵帧实现:同样是map(Map<std::string,
SpriteFrame*> _spriteFrames;),但是不是std的map,而是cocos自定义的map。所以会自动增加引用计数,此外,纹理map是路径+纹理,精灵帧map是名字+精灵帧(这个名字就是小图片名了)
同样是addSpriteFramesWithFiles:获取路径——看是否加载过——加载(先获取metedata,在获取图片路径)——大图片放入纹理缓存——addSpriteFramesWithDictionary 根据plist添加map和精灵帧,并为精灵帧retain。
相关文章推荐
- Cocos精灵帧缓存
- 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