Cocos2d-x内存优化与实践指南.pdfVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

优化cocos2d内存

转自Himi

1.避免一个接一个地加载PNG和JPG纹理(他们之间至少等待一帧)

2.不要使用JPG!

3.不要忽视文件大小

4.使用16-bit纹理

6.使16位纹理看起来更棒

7.使用NPOT纹理

8.使用pvr.ccz文件格式

9.当视觉察觉不出来的时候,可以考虑使用PVRTC压缩

10.PVRTC压缩格式

11.预先加载所有的纹理

12.按照纹理size从大到小的顺序加载纹理

13.避免在收到内存警告消息的时候清除缓存

14.理解在什么时候、在哪里去清除缓存

15.SpriteFramesretaintextures!

16.添加SpriteFrames非常耗时,每次都是!

17.你可以清除任何缓存(比如animation,spriteframes等),但是请不要轻易清除纹理缓存

18.例外:检查声音文件的内存使用!

19.使用一个Loading场景

20.在加载纹理

21.在加载其它游戏资源

22.按顺序加载游戏资源

一,IOS与内存

在IOS上,会被自动缩放到2的N次方大小。比如一张1024*1025的,占用的内存与

一张1024*2048的是一致的占用内存大小的计算的是;长*宽*4。这样一张512*512占

用的内存就是512*512*4=1M。其他尺寸以此类推。(ps:IOS上支持的最大尺寸为2048*2048)。

二,cocos2d-x的缓存

Cocos2d-x在构造一个精灵的时候会使用spriteWithFile或者spriteWithSpriteFrameName

等无论用哪种方式,cocos2d-x都会将这张加载到缓存中。如果是第一次加载这个,那就

会先将这张加载到缓存,然后从缓存。如果缓存中已经存在,则直接从缓存中提取,免除了

加载过程。

的缓存主要由以下两个类来处理:CCSpriteFrameCache,CCTextureCache

CCSpriteFrameCache加载的是一张拼接过的大图,每一个小图只是大图中的一个区域,这些

区域信息都在plist文件中保存。用的时候只需要根据小图的名称就可以加载到这个区域。

CCTextureCache是普通的缓存,我们所有直接加载的都会默认放到这个缓存中,以

提高调用效率。

因此,每次加载一张,或者通过plist加载一张拼接图时,都会将整张加载到内存中。

如果不去释放,那就会一直占用着。

三,渲染内存。

不要以为,计算内存时,只计算加载到缓存中的内存就可以了。以一张1024*1024的为例。

CCSprite*pSprite=CCSpritespriteWithFile(a.png);

调用上边这行代码以后,可

您可能关注的文档

文档评论(0)

135****9250 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档