关于cocos游戏内存的优化
在游戏中,游戏的内存占用大部分是纹理,所以我们要优化的对象主要是纹理。
(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,使用骨骼动画代替连续帧动画