Cocos2dx小技巧(十)三种缓存类介绍
作者:发布日期:2014-04-25 20:13:05
- 在介绍三个缓存时,我们要先理清一个问题:什么是纹理?通俗的解释呢,纹理就是图片的意思啦。当一张图片被加载到内存后,它是以纹理的形式存在的。从这里可以看出,纹理其实就是一块内存!这块内存中存放的是按照指定的像素格式填充的图片像素信息。
下面进入正题:
1、TextureCache
TextureCache纹理缓存是最底层也是最有效的纹理缓存。它到底有什么用呢?我先描述一个现象吧:假设游戏中有个界面用到的图片非常多,,第一次点进这界面时速度非常慢(因为要加载绘制很多图片),可第二次点击却一下子就进去了。这是为什么呢?原来Cocos2dx的渲染机制是可以重复使用同一份纹理在不同的场合进行绘制,从而达到重复使用,降低内存和GPU运算资源的消耗与开销。举个例子:创建一个精灵
1.
auto sp = Sprite::create(
"image.png"
);
第一次使用image.png这图片有两个步骤,一个是先将图片加载进TextureCache缓存中,下一步是绘制图片,从而将其显示在场景中。
第二次使用image.png时,因为之前image.png已经被放入TextureCache中,所以这里只需从缓存中找到这张图片,然后将其绘制出来就可以。
下面用几行代码做个总结:
2.
auto sp1 = Sprite::create(
"boy.png"
);
3.
this
->addChild(sp1,
1
);
4.
6.
auto sp_cache = Director::getInstance()->addImage(7.
auto sp1 = Sprite::createWithTexture(sp_cache);
8.
);