简短的回答。是的。
Reason..
每次你想要呈现或加载 .sks 文件时,你需要使用这样的类来加载它
let doors = SKTransition.doorwayWithDuration(1.0)
let archeryScene = GameScene(fileNamed: "GameScene")
self.view?.presentScene(archeryScene, transition: doors)
如果您查看常量,则会加载带有类的文件
MyScene(fileNamed: "MyScene")
所以是的,每个 .sks 文件确实需要一个 .swift 文件。
有关 .sks 文件的更多信息,请参阅此处。
科技乌托邦 -iOS 8 Swift Sprite Kit 关卡编辑器游戏教程 http://www.techotopia.com/index.php/An_iOS_8_Swift_Sprite_Kit_Level_Editor_Game_Tutorial
另外,当我使用 Spritekit Level Editor 时,我通常将场景大小设置为 960 x 640 以支持最小的 iPhone。也如你所拥有的@1x, @2x, @3x
并且可能@1x~iPad
and @2x~iPad
, 一切都会好起来的。只是为了确定在ViewDidLoad
or the initWithSize(CGSize)
to add self.scaleMode = .AspectFill.
您可以将其设置为任何内容。你的选择是,
SKSceneScaleMode.Fill
场景的每个轴都是独立缩放的,以便场景中的每个轴精确映射到视图中该轴的长度。
SKSceneScaleMode.ResizeFill
场景未缩放以匹配视图。相反,场景会自动调整大小,以便其尺寸始终与视图的尺寸相匹配。
SKSceneScaleMode.AspectFit
计算每个维度的比例因子并选择两者中较小的一个。场景的每个轴都按相同的缩放因子缩放。这保证了整个场景可见,但可能需要在视图中进行信箱处理。
SKSceneScaleMode.AspectFill
计算每个维度的比例因子并选择两者中较大的一个。场景的每个轴都按相同的缩放因子缩放。这保证了视图的整个区域被填充,但可能会导致场景的部分内容被裁剪。
(归功于@epicbyte -在 SpriteKit 中处理不同的 iOS 设备分辨率 https://stackoverflow.com/questions/25205882/dealing-with-different-ios-device-resolutions-in-spritekit)