【问题标题】:Should I just scale small images to other form factors in a cocos2d game?我应该在 cocos2d 游戏中将小图像缩放到其他形式吗?
【发布时间】:2013-02-21 00:25:33
【问题描述】:

我有一个使用 cocos2d-iphone 构建的 通用 iOS 游戏,其中有 large 数量的 small 图像(以及其他图像)。对于这些小图像,游戏在 iphone:ipad/iphone-retina:ipad-retina 的 1:2:4 比例下运行良好。我有两种方法可以在游戏中启用此功能:

A) 拥有三组 sprites/spritesheets - 用于所需的三种外形尺寸并适当命名它们并拾取图像

B) 拥有一组最高分辨率的图像,然后根据设备及其分辨率进行缩放aSprite.scale=[self getScaleAccordingToDevice];

选项 A 的优点是运行时开销较小,但会占用大量磁盘空间(这是一个重要的考虑因素,因为应用程序目前约为 94 MB)。 选项 B 的优点是磁盘占用空间更小,但代价是即使对于 iphone 3gs(支持的最低设备),ipad 视网膜图像也会加载到内存中。

有人可以提供有助于我决定一种或另一种方式的论据吗?

谢谢

【问题讨论】:

    标签: cocos2d-iphone sprite ios-universal-app


    【解决方案1】:

    没有参数:使用选项 A。

    选项 B 绝对不可能,因为您将在具有 iPad 3 或4(256 MB 与 1 GB)。更不用说渲染如此大图像的缩小版本所需的额外处理能力了。由于内存不足和运行速度太慢,它很有可能根本无法工作(您尝试过吗?)。

    接下来,按理说,在 95 MB 时,如果使用选项 B,您的应用程序可能仍不会低于 50 MB。大的 Retina 纹理占包大小的三分之二或四分之三,SD 纹理不重在很多。这是您应该考虑的唯一应用程序包大小目标,因为低于 50 MB 的用户可以通过无线方式下载您的应用程序,超过 50 MB 的用户必须通过 Wifi 同步或连接到计算机。如果您不能低于 50 MB,那么您的捆绑包大小是 55 MB 还是 155 MB 并不重要。

    最后有更好的选择来减小捆绑包的大小。 Read my article 尤其是第二部分。

    如果您的图像是 PNG,您首先应该尝试将它们全部转换为 .pvr.ccz 和 NPOT 纹理图集(最简单的方法:TexturePacker)。您可以在不损失图像质量的情况下将捆绑包大小减少多达 30-50%。如果您可以承受损失一些图像质量,则可能会节省更多(加上额外的加载和性能改进)。

    【讨论】:

    • 谢谢,这很有帮助,正是我所需要的。我将选择选项 A。我已阅读您的文章,我的游戏(Smart Run)的更新在 70 MB 左右徘徊,并进行了一些更改(pvr.ccz、imageoptim、使用正确的 RGB 变体等)。将完成其余的事情并尝试将其控制在 50 MB 以下。
    【解决方案2】:

    好吧,在 94Mb 上,您的应用程序已经超出了电话网络的下载限制,即只有在某些互联网连接可用时才会下载它。所以……这真的是个问题吗?您需要考虑的另一个重要因素是运行时的内存占用。如果您在 3G 上运行 4 倍并按比例缩小,内存需求仍将是完整大小的精灵(即 16 倍内存量:)。因此,您必须问自己的另一个问题是,该游戏是否可能在旧设备上以高内存占用“运行”。此外,纹理的加载时间可能足以影响您的应用在旧设备上的可用性。您需要衡量这些事情并根据一些硬数据做出决定(不幸的是)。

    您需要做的第一个测试是查看您的“缩小”精灵在标准分辨率 iPhone 上是否正常。缩小有时在渲染时达不到预期。如果你的平面设计师拒绝选项 B,你就没有决定权。他/她有责任提供所有 3 种格式。之后,如果选项 B 仍然是一个选项,我将从选项 B 开始,并在 3GS 上进行测量(小型项目,而不是完整的实施)。如果一切顺利,你就完成了。

    ps:对于应用程序大小,请考虑使用 .pvr.ccz 格式(我使用纹理打包器)。更小的纹理和更快的加载时间(因为 pvr 格式)。由于通常较慢的处理器 - 需要解压缩,3GS 上的加载时间改进可能较小。

    【讨论】:

    • 谢谢,我同意这个建议。我正在尝试通过 Steffen 的博客文章建议,将其缩小到 50 MB 以下,一旦完成,这可能是一个近距离的电话。但基于这两种反应,选择选项 A 似乎更安全。
    猜你喜欢
    • 2011-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-01
    相关资源
    最近更新 更多