关于cocos游戏内存的优化

一、cocos2dx游戏内存优化

在游戏中,游戏的内存占用大部分是纹理,所以我们要优化的对象主要是纹理。

(1)加载帧中的纹理或项目,优化图集,将破碎图像打包成大图像。

什么是框架加载?帧加载意味着下一个纹理至少相隔一帧加载,多个纹理不能在同一帧时间内加载。如果一次加载的东西太多,页面就会卡死。框架加载主要用在页面加载另一个场景资源的时候,以及背包之类的物品比较多的时候。

(2)使用对象池,如果大量使用相同的elf纹理。

(3)按照从大到小的顺序加载纹理,可以降低内存的瞬时峰值。在创建sprite CCSprite的过程中,会创建一个CCImage,所以短时间内会占用两倍的内存,所以要避免连续加载(同一帧加载多张图片)。

(4)避开内存使用高峰

(5)在不需要的时候释放无用的资源。

(6)减小声音文件的大小

(7)使用加载层作为缓冲,清空前面无用的缓存,加载新的场景。

(8)使用骨骼动画代替连续帧动画。

二、创作者游戏内存优化,主要从这几个方面:加载优化、渲染优化、内存优化、CPU使用和性能优化。

1,图集包装

(1)节省了多次打开/关闭文件造成的时间损失,减少了图像读取和解码操作。

(2)减小文件的大小

(3)多张图片合并在一起,体积上会有一些优化,DrawCall会减少。

2.优化资源释放,切换场景,释放不用的资源。

3.预制装载优化

预制体的负载优化主要集中在两个地方:一是负载加载的耗时优化,二是实例化的耗时优化。

超级预制可以通过拆分不同的基础功能来实现。

4.资源批量加载的优化,即帧加载。

如果需要生成大量的节点或预置,要考虑分帧加载,而不是一次同时加载。

5.游戏中频繁更新的角色推荐使用BMFont,系统字体会消耗更多性能。

6.调整渲染顺序。属于同一个集合的纹理节点尽量一起渲染,中间不能混有其他纹理。

7.优化节点树,减少节点数量。

8.场景中不要挂载太多的预设,而是适当的将一些预设改成动态载荷。

9、减小声音文件大小

10,使用骨骼动画代替连续帧动画