将SKScene与UIViewController链接

时间:2015-02-17 03:25:49

标签: ios swift uiviewcontroller sprite-kit

我正在尝试将SKScene与UIViewController链接起来。现在我知道这个问题已经发布过,但是没有一个在Swift中,我的整个游戏都是用Swift编写的。无论如何,当你第一次创建一个SpriteKit游戏时,会生成两个默认文件GameScene.swift和一个GameViewController.swift。这两个似乎是通过使用“链接”:

    extension SKNode {
    class func unarchiveFromFile(file : NSString) -> SKNode? {
        if let path = NSBundle.mainBundle().pathForResource(file, ofType: "sks") {
            var sceneData = NSData(contentsOfFile: path, options: .DataReadingMappedIfSafe, error: nil)!
            var archiver = NSKeyedUnarchiver(forReadingWithData: sceneData)

            archiver.setClass(self.classForKeyedUnarchiver(), forClassName: "SKScene")
            let scene = archiver.decodeObjectForKey(NSKeyedArchiveRootObjectKey) as MainMenuScene
            archiver.finishDecoding()
            return scene
        } else {
            return nil
        }
    }
}

我尝试通过制作MainMenuViewController.swift来做到这一点。然后我在文件中粘贴了上面相同的代码。然后我通过Interface Builder连接,这意味着我将ViewController的类设置为MainMenuViewController.swift。这一切似乎工作正常,但当我编译所有内容时,我得到一个错误,上面写着:'unarchiveFromFile'的重新声明无效。如何将与主菜单场景“链接”的默认生成文件具有相同的效果?

0 个答案:

没有答案