如何在GameViewController.swift中加载与GameScene.swift不同的spritekit文件?

Aus*_*tin 5 xcode sprite-kit swift xcode7 swift2

在GameViewController.swift中,我找到了这一行

if let scene = GameScene(fileNamed:"GameScene") {
Run Code Online (Sandbox Code Playgroud)

而且我一直认为,如果我想加载GameScene.swift以外的东西,我可以将"GameScene"更改为"LandingPage",一切都可以正常工作.但是,正如我最近发现的那样,"GameScene"实际上是指GameScene.sks而不是swift文件.

我正在寻找一个具有多个级别的游戏,每个级别都用自己的swift文件编写.我应该去哪里/如何从level1.swift移动到level2.swift?

Ken*_*iau 3

如果你在一个场景中,例如关卡选择场景,那么你可以通过的方法LevelSelectionScene.swift转到另一个场景。SKView-presentScene:transition:

class LevelSelectionScene: SKScene {

    override func didMoveToView(view: SKView) { /* ... */}

    func selectLevel(level: Int) {
        let fadeTransition = SKTransition.fadeWithDuration(0.3)
        if let selectedLevel = createLevelSceneWithLevel(level) {
            self.view?.presentScene(selectedLevel, transition: fadeTransition) 
        }
    }


    // Not a good idea if you progressively adding new levels,
    // it's totally depend on how you gonna organize your levels.
    // Since its level input is not arbitrary, the output of this
    // rarely nil, if it does, it must be the developer mistake.
    func createLevelSceneWithLevel(level: Int) -> SKScene? {
        let levelScene: SKScene?
        switch level {
            case 1: levelScene = Level1()
            case 2: levelScene = Level2()
            default: levelScene = nil
        }
        return levelScene
    }

}
Run Code Online (Sandbox Code Playgroud)