swift - 在 SpriteKit 中将 Game.sks 连接到 Game.swift

标签 swift sprite-kit

我创建了 GameOver.sks 和 GameOver.swift。如何在默认的 sprite-kit 项目中连接它们,例如 GameSense.sks 和 GameSense.swift?

最佳答案

您可以使用以下扩展名来取消归档 sks 文件。

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 SKNode
            archiver.finishDecoding()
            return scene
        } else {
            return nil
        }
    }
}

如果 GameOverScene 是您的 SKScene 而 GameOverScene.sks 是您的 sks 文件,那么您可以使用以下代码取消存档。

let scene = GameOver.unarchiveFromFile("GameOverScene") as GameOverScene

关于swift - 在 SpriteKit 中将 Game.sks 连接到 Game.swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28732568/

相关文章:

ios - 委托(delegate)创建 ViewController 的新实例

swift - 除了 .tintColor 之外,还有其他方法可以更改 UITextField 的光标颜色吗?

ios - ViewController 中的顶部栏 ios swift 显示上一个顶部栏

ios - Swift 项目中的 AFNetorking -- "Error: Request failed: unacceptable content-type: text/html"

ios - SpriteKit - SKSpriteNode 在 3.5 英寸和 4 英寸设备上的缩放方式不同

swift - 更改场景中的 SKS 文件

swift - spriteKit背景超出手机IOS边框

ios - 删除 TableView 中的单个分隔符

ios - 国际象棋游戏的 Sprite Kit 游戏设计

ios - 检测圆形 SKShapeNode 中的触摸?