缓存机制
- Cocos2d-x纹理缓存
- Cocos2d-x精灵帧缓存
- Cocos2d-x动画缓存
纹理缓存
事实上,当我们创建精灵时,引擎已经帮我们做了缓存,因而我们下次调用的图片可以从缓存获得,减少了内存的消耗,下面我们从源码入手,大致的了解创建精灵时,如何做纹理缓存。
实质上,纹理缓存类似一个字典库,而文件名就是索引的条件,我们可以根据文件名把图片缓存起来,也可以根据文件名获取缓存中的图片。
Sprite *grossini = Sprite::create("grossini_dance_01.png");<span style="white-space:pre"> </span>// 用图片创建精灵对象
接下来,转向精灵的create()函数的实现:
Sprite* Sprite::create(const std::string& filename)
{
Sprite *sprite = new (std::nothrow) Sprite();<span style="white-space:pre"> </span>// 用C++的方式,创建一个精灵
if (sprite && sprite->initWithFile(filename))<span style="white-space:pre"> </span>// 检查精灵对象