【问题标题】:How to make Sprite Kit display @2x images from atlas at correct size?如何使 Sprite Kit 以正确的尺寸显示来自 atlas 的@2x 图像?
【发布时间】:2014-01-02 18:41:46
【问题描述】:

当一个项目只有 @2x 图像,因为它只针对视网膜显示设备,atlas Sprite Kit atlas 的比例错误,因为 RGBA8888_COMPRESSED 设置与 PVR 纹理一起使用。 RGBA8888_PNG(默认)有时可以正常工作。

在切换到 atlas 之前,我将所有 @2x 图像放在一个组中并加载它们:

sprite = [SKSpriteNode spriteNodeWithImageNamed:@"theImage.png"];

没问题。正确的大小。

现在使用 atlas 和 RGBA8888_COMPRESSED,我得到了 SKTexture 并且图像太大了。完全相同的节点和配置。仅使用来自 atlas 的 SKTexture。

为什么会这样?

【问题讨论】:

    标签: ios iphone sprite-kit sktextureatlas


    【解决方案1】:

    atlas 图像应该有@2x 后缀,而不是其中包含的文件。

    不起作用:

    atlas.png contains theImage@2x.png
    

    正确用法:

    atlas@2x.png contains theImage.png
    

    我什至不确定 Sprite Kit 一开始就支持 PVR 纹理。也许尝试确认您的设置适用于 PNG,然后导出为 PVR 并尝试。

    当你这样做时,一定要清理你的项目(Xcode:Project -> Clean)并从设备/模拟器中删除应用程序(这一步至关重要!)否则捆绑包仍将包含 PNG atlas 图像并且你可能会误以为 PVR 可以工作,因为如果您不删除它并清理您的构建,Sprite Kit 实际上可能会加载仍然存在于包中的 PNG 图集。

    【讨论】:

    • 我尝试了这种方法,但它对我不起作用。我不得不恢复在纹理资产的文件名中使用@2x,而不是纹理图集。文档中是否有显示正确命名约定的参考?我还没找到。
    【解决方案2】:

    对于这种情况,您可以创建两个图集,一个用于视网膜,一个用于 1x 分辨率。

    例如,如果您的 sprite atlas 文件夹命名为 MySprites.atlas,您可以只为 1x 图像保留它,并为视网膜位图创建一个名为 MySprites@2x.atlas 的新文件夹。

    图像在 MySprites@2x.atlas 目录中保留后缀 e.x @2x~iPad

    【讨论】:

      【解决方案3】:

      免责声明:我只在 XCode 6 中对此进行了测试。

      我打开文件系统中的 Images.xcassets 文件夹。在它里面是每个图像的一个文件夹,在每个图像文件夹中都有图像文件和一个名为 Contents.json 的 json 文件。它看起来像这样:

          {
        "images" : [
          {
            "idiom" : "universal",
            "scale" : "1x",
            "filename" : "btn_orange.png"
          }
        ],
        "info" : {
          "version" : 1,
          "author" : "xcode"
        }
      }
      

      如果我将比例行更改为 2x,即:

      "scale" : "2x",
      

      图像将显示为视网膜图像(并且不要使用@2x 后缀)。

      【讨论】:

      • 这是真的,但那是 xcasset 文件夹。他的问题是指 SpriteKit 的 atlas 功能。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多