ios – Spritekit – 不加载@ 3x图像从SKTextureAtlas

由于我的示例项目被删除(我认为这样会更容易测试),我将发布一些代码和图像来说明我的观点.

这里是示例图像

我的地图册设置:

我的发射图像设置:

我将这些精灵添加到我的场景的代码

override func didMovetoView(view: SKView) {
    let texture = SKTextureAtlas(named: "scenery")
    let test = SKSpriteNode(texture: texture.textureNamed("test"))
    test.position = CGPoint(x: self.size.width/2,y: self.size.height/2)
    self.addChild(test)

}

这些是我的结果:

iPhone 5模拟器:

iPhone 6加模拟器:

我已经尝试更改启动映像以使用资产目录.那么iPhone 6 plus似乎会升级2x屏幕.它仍在加载2x图像,但是将其缩放.

我需要它来加载我的3x图像,并使用我的2x图像进行缩放.

Gabuh的回答指出了我正确的方向.在一个新项目上工作.但是,如果我将他的解决方案用于我的真正的SpriteKit项目,我的3x图像不会被缩小.它们比它们大3倍.

解决方法

当Xcode生成编译的图集时,这似乎是一个错误.如果您检查编译的应用程序的包,您将看到Xcode不为@ 3x图像创建正确的地图集名称.

我已经通过使用@ 3x名称创建地图集来管理@ 3x资源,并留下没有后缀的图像.

您可以检查UIScreen.mainscreen().scale来决定要使用的地图集名称.检查附件中的地图集名称,以及getTextureAtlas中的代码

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...