Cocos2d-x 3.2中的三种缓存类
来源网址:http://www.52php.cn/article/p-hqxfhzje-wx.html 【前言】 Cocos引擎主要有三种缓存类: > 纹理缓存:TextureCache > 精灵帧缓存:SpriteFrameCache > 动画缓存:AnimationCache 缓存的目的就是:先将所需资源(如纹理图片)加载到内存中,之后再次使用该资源的时候,就可以直接从内存中取出,而不需要重新加载。从而减少了CPU和GPU的内存占用。 本文对参考文献的内容进行了整理与整合,并加入一些自己的观点。 【TextureCache】 1、概述 在游戏中需要加载大量的纹理图片,这些操作都是很耗内存和资源的。 当游戏中有个界面用到的图片非常多,第一次点进这界面时速度非常慢(因为要加载绘制很多图片)出现卡顿,我们可以使用TextureCache提前异步加载纹理,等加载结束,进入到这个界面再使用这些图片速度就会非常快。 > Texture2D(纹理):即图片加载入内存后供CPU和GPU操作的贴图对象。 > TextureCache(纹理缓存):用于加载和管理纹理。一旦纹理加载完成,下次使用时可使用它返回之前加载的纹理,从而减少对GPU和CPU内存的占用。 当你创建一个精灵Sprite,你一般会使用Sprite::create(fileName)。假如你去看Sprite::create(fileName)的实现方式,你将看到它将这个图片增加到纹理缓存中去了。
2、获取TextureCache 在3.x版本中,TextureCache不再作为单例模式使用。而是作为Director的成员变量,通过以下方式获取。
|