【问题标题】:cocos2d zooming sprite without distortion?cocos2d缩放精灵不失真?
【发布时间】:2013-01-05 19:05:48
【问题描述】:

我想在 Cocos2d 中用捏合手势实现精灵的缩放。

如何在图像不像素化的情况下实现它?

我尝试过使用矢量但没有成功,我注定要使用光栅位图图像。

  1. 我是否需要尽可能大且分辨率最高的图像才能使其看起来 好看吗?

  2. cocos2d 中 png 的大小限制是多少?

  3. 我还需要考虑哪些其他陷阱?

【问题讨论】:

    标签: iphone cocos2d-iphone game-engine


    【解决方案1】:
    1. 是的。例如,如果精灵在放大到最大时应该覆盖 1024x1024 像素的区域,则需要将图像创建为 1024x1024 并将 scale 属性设置为低于 1 以创建较小的版本。如果您使用大于 1.0 的比例,图像将始终丢失细节,并且随着比例的增加变得更加模糊。

    2. cocos2d 没有大小限制,是设备施加了限制。大多数设备都可以处理 2048x2048,除了仅支持 1024x1024 的第一代和第二代。不过,您通常不会支持这些旧设备,因此 2048x2048 应该是默认值。一些较新的设备(iPad 2+、iPhone 4S+)可以使用多达 4096x4096 的纹理。

    3. 内存消耗。不确定您要尝试做什么,但开发人员通常对内存纹理消耗的内存量和可用内存量知之甚少。例如,具有 32 位颜色的 2048x2048 格式的 PNG 会占用 16 MB 内存。不要计划使用超过 4-5 个,除非您能够降低颜色位深度并使用 TexturePacker 来使用压缩的 .pvr.ccz 格式。 Read my article about optimizing memory usage for more info.

    【讨论】:

    • 非常感谢,现在很清楚了,但是:我不明白纹理和图像之间的区别。我的目标是在我的应用程序中创建一个可以通过捏合来放大的台球桌图形......所以,我可以简单地加载一个 png 文件并放置它,还是我需要那些复杂的纹理?
    • 喜欢答案,如此精确!
    • 图像(png、jpg、pvr)被加载到内存中并成为纹理。纹理可能大于实际图像或使用不同的颜色格式。基本上,纹理是图形芯片可以使用和显示的格式的图像。 Cocos2d 隐藏了很多内容,如果您创建 spriteWithFile,它会加载图像并创建纹理并将其保存在内存中,而您不会注意到。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    相关资源
    最近更新 更多