xcode - 如何在我的 GameViewController.swift 中加载不同于 GameScene.swift 的 spritekit 文件?

标签 xcode swift sprite-kit swift2 xcode7

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

if let scene = GameScene(fileNamed:"GameScene") {

而且我一直认为,如果我想加载 GameScene.swift 以外的东西,我只需将“GameScene”更改为“LandingPage”,一切都会正常进行。然而,正如我最近发现的那样,这里的“GameScene”实际上是指 GameScene.sks 而不是 swift 文件。

我希望制作一款具有多个级别的游戏,每个级别都写在自己的 swift 文件中。我应该去哪里/如何从 level1.swift 移动到 level2.swift?

最佳答案

如果你在一个场景中,例如关卡选择场景,比方说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
    }

}

关于xcode - 如何在我的 GameViewController.swift 中加载不同于 GameScene.swift 的 spritekit 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34914274/

相关文章:

ios - 缺少必需的图标文件。该 bundle 不包含 iPhone/iPod Touch 的应用程序图标,正好是 '120x120' 像素

Swift 获取本地日期实例

ios - Swift 自定义图像选择器 Controller - 第一次不加载媒体

ios - SKVideoNode 停止 SKAudioNode 播放

ios - 如何在Sprite Kit中通过一组CGPoint进行动画制作-Swift

ios - 为 64/32 位 iOS 编译

xcode - 在不同 NSViewController 之间传递数据 swift OS X

ios - 使用单独的 `text` 无限地淡入和淡出标签

ios - 无法获取 CoreData 以删除对象

ios - Sprite Kit 加载时间慢