由于图像,Cocos2d中的内存警告

时间:2012-09-14 06:44:00

标签: ios memory-management cocos2d-iphone didreceivememorywarning

我正在加载一个包含近700个png图像的Cocos2d场景,即使我直接从Xcode运行这个场景,我也会在控制台中收到一条内存警告消息以及一些我的图像名称的长列表。

我正在dealloc中正确释放它们但是当我再次来到这个场景时这次我的游戏在加载我的一半图像时崩溃

这是一次加载如此多的纹理还是有问题的代码的问题?

我应该如何处理加载这么多图像并进行适当的内存管理以避免这种崩溃?

1 个答案:

答案 0 :(得分:2)

700 png图片?嗯。好的,我喜欢那些游戏。

假设每个图像“仅”128x128像素。每个纹理消耗64 KB(128次128次4字节)。总共45 MB内存用于700个这样的纹理。

如果你的纹理是那个或甚至更多,KA-BOOM!

请记住,文件大小与纹理内存无关。文件系统中的文件总共可能有几兆字节。但那是因为他们被压缩了。但是,从PNG文件创建的纹理不会被压缩。

你能做什么:

  • 使用纹理图册
  • 将纹理的颜色深度减少到16位
  • 使用压缩的PVR格式

TexturePacker将帮助您完成这些任务。