我创建了 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/