由于我的示例项目被删除(我认为这样会更容易测试),我将发布一些代码和图像来说明我的观点.
这里是示例图像
我的地图册设置:
我的发射图像设置:
我将这些精灵添加到我的场景的代码
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中的代码