cocos 优化方案

Cocos2d-x优化方案

优化方向主要有:引擎底层优化、纹理优化、渲染优化、资源缓存、内存优化。


引擎优化:


纹理优化:

纹理是最消耗内存的,而且会降低渲染速率,此部分是重点,下面会详细介绍。

 

渲染优化:

批次处理:使用CCSpriteBatchNode,准备好Sprite的坐标信息后,进行一次性渲染。

传统渲染处理:不同的切换纹理,不同地加载和渲染。

 

二者区别:批次处理是一次加载完所有纹理,然后一次渲染,从而提高渲染效率。

 

资源缓存:

CCSpriteFrameCache和CCTextureCache

缓存比较耗电量,所以一般使用完后要调用remove函数移除缓存,而且在预加载时要显示进度条,可能会影响用户体验,应该根据情况使用。

 

内存优化:

资源占用的内存优化,如前面几个小节所述。

 

内存池方案:

游戏启动的时候就分配很大的一块区域,游戏运行过程中不释放,直到退出游戏再释放。平时不是为新资源分配内存,而是把资源加载到内存池里面。多次使用的时候,就不用经过多次的释放和重新加载。这部分可以多了解下C++的内存池管理机制。


优化方案详解

 

纹理优化:

1. 合成优化:

OpenGL在申请内存存放纹理时,是按2的幂次方申请的,即对应480*320的图片,它申请的是512*512空间。可见,会有相当多的内存被浪费。所以,我们设计的图片,最好是2的幂次方,不然OpenGL最终还是申请2的幂次方内存空间。

由于不是所有图片都刚好能设计成2的幂次方,因此通过“拼图”方法解决,即使用TexturePacker将小图合成大图。

 

2. 色深优化:

图片所占内存的大小用这条公式计算:高度像素*宽度像素*色深。


如色深RGBA8888,是32bit,每8bit是一个字节,因此一个像素点占

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值