首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Cocos2D / CocosBuilder纹理地图集内存使用情况

Cocos2D / CocosBuilder纹理地图集内存使用情况
EN

Stack Overflow用户
提问于 2013-05-01 06:43:48
回答 1查看 472关注 0票数 0

我是Cocos2D和CocosBuilder的新手,我有几个关于内存使用的问题。

1)在CocosBuilder (或Cocos2D )中,如果我对同一场景中的所有CCSprite对象使用相同的纹理图集(精灵工作表),是否会比为每个精灵使用不同的纹理节省内存使用量?准确地说,如果我使用一个4k*4k纹理,游戏是否只需要一个纹理图集的内存(例如4k * 4k * 32位)?

2)不同的精灵可以使用不同的纹理模式来节省内存吗?例如,对背景图像使用no-alpha模式。换句话说,Cocos2D可以处理同一场景中的不同纹理模式吗?

3)我必须在一个场景中实现一个大约有100个对象的游戏,总共有三个场景。现在,同一场景中的所有对象都使用相同的spritesheet。尽管如此,在场景之间切换了几次后,游戏还是崩溃了。每次我收到我的警告信息。解决此问题的最佳方法是什么?我试图丢弃所有这些缓存,但仍然崩溃。

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-01 09:03:46

1)一个纹理只加载一次,无论从中绘制多少对象。通常,使用单个纹理不会节省(大量)内存,但可以通过从尽可能少的纹理图集而不是单个图像文件纹理绘制来提高加载时间和渲染性能。

2)可以。例如,在同一场景中可以有RGB565 (无alpha)、RGB5551 (布尔Alpha)或RGBA4444/RGBA8888纹理,没有问题。

3)使用仪器。检查是否有泄漏。如果你没有使用ARC,现在是时候换了。注:不要清除缓存,这只会浪费时间和内存,因为最终纹理需要重新加载。如果你想释放一个纹理,你确定当时没有使用,并且在不久的将来也不会使用,那么取消缓存这些纹理,只缓存那些纹理。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16310143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档