Ios Cocos2d中因图像而出现内存警告

Ios Cocos2d中因图像而出现内存警告,ios,memory-management,cocos2d-iphone,didreceivememorywarning,Ios,Memory Management,Cocos2d Iphone,Didreceivememorywarning,我正在加载一个Cocos2d场景,该场景包含近700个png图像,即使我直接从Xcode运行该场景,我也会在控制台中收到一条内存警告消息以及我的一些图像名称的长列表 我在dealloc中正确地释放了它们,但是当我再次出现在这个场景中时,我的游戏在加载我的一半图像时崩溃了 这是一次加载这么多纹理的问题还是有问题的代码 我应该如何处理加载这么多图像并进行适当的内存管理以避免此崩溃?700 png图像?嗯,好的,我喜欢那些游戏 让我们假设每个图像“仅”为128x128像素。每个纹理消耗64 KB(12

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

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

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


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

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

让我们假设每个图像“仅”为128x128像素。每个纹理消耗64 KB(128乘以128乘以4字节)。总共45 MB内存用于700个此类纹理

如果你的纹理是原来的两倍甚至更多,那就加油

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

您可以做什么:

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

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

我的理解是,压缩PVR对纹理所需的实际内存没有实际影响(即128x128将为您提供64Kb的内存,无论它是否来自.png或.PVR.gz文件格式),而是会影响文件大小和文件加载时间。我错过了什么吗?我还没有在cocos2d中使用纹理贴图,所以现在让我们使用它:)你能参考一些教程吗??我会很感激的。如果你的回答行得通,我就接受;)