【问题标题】:Memory Usage - Large Images内存使用 - 大图像
【发布时间】:2011-09-28 05:47:25
【问题描述】:

我正在使用 Tiled 来切割我的大图像以节省内存,但它使用的数量相同?我的图像是 PNG 格式的 1986 x 1562 像素,在游戏过程中占用了 31MB 的内存。当我使用 tilemap 时,它是 TMX 格式的 180 x 120 tile,使用 31MB。我只是做错了什么吗?我将 TMX 文件与 PNG 文件一起放入我的项目中。

我不明白。我的应用程序中将有大约 10 张这样大小的图像。我该怎么办?

【问题讨论】:

  • 一个很好的教程:raywenderlich.com/1163/…
  • 当您不再需要它们时,是否将它们从纹理缓存中移除?
  • 是的,我是。我只是想让它低于 20MB。我希望 tilemap 能做到这一点。
  • @Jon,为了清楚起见。你现在不考虑文件大小,是吗?只是想,因为您似乎希望该游戏可用于 3G 下载。
  • @zebulon,不,我没有考虑文件大小。我不知道你只能有一定的3G下载大小。我确实知道你必须在 WiFi 上下载 20MB 或以上的应用程序。

标签: iphone cocos2d-iphone tiles


【解决方案1】:

首先,任何早于 3GS 的 iPhone 的最大纹理尺寸为 1024x1024。您的游戏会在旧设备上崩溃。其次,OpenGL 在创建纹理时会将纹理大小四舍五入到最接近的 2 次方。您的 1986x1562 纹理实际上是 2048x2048,即 4 兆。

您的应用在加载一个纹理后使用 31 megs 可能是由于其他因素。除非你返回一个空白项目,只加载其中一个巨大的纹理,但你仍然有 31 兆,我说这是别的东西。

您应该做的是在逻辑上将您的纹理分组为多个 1024x1024 的图像。并使用 Xcode 的分析工具来确定内存的去向。

【讨论】:

    猜你喜欢
    • 2015-07-06
    • 2012-06-20
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 2023-01-14
    相关资源
    最近更新 更多