首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在SpriteKit中将Game.sks连接到Game.swift

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

Stack Overflow用户
提问于 2015-02-26 08:47:32
回答 2查看 483关注 0票数 1

我创建了GameOver.sks和GameOver.swift .How,我可以像默认的sprite-kit项目中的GameSense.sks和GameSense.swift那样将它们连接起来吗?

EN

回答 2

Stack Overflow用户

发布于 2015-02-26 19:07:27

您可以使用以下扩展名解压sks文件。

代码语言:javascript
复制
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文件,那么您可以使用以下代码解压。

代码语言:javascript
复制
let scene = GameOver.unarchiveFromFile("GameOverScene") as GameOverScene
票数 0
EN

Stack Overflow用户

发布于 2015-07-16 14:16:34

我刚刚用Swift 2和Xcode7测试版做到了这一点。将.sks文件和.swift文件命名为相同的"GameOver.sks & GameOver.swift“。尝试GameScene.swift中的代码以过渡到GameOver场景,以确保其正常工作。这是假设您在GameViewController.swift中以"GameScene“作为初始场景开始,也假设您启动了一个SpriteKit模板项目并手动添加了GameOver文件。

代码语言:javascript
复制
import SpriteKit
class GameScene: SKScene{

override func didMoveToView(view: SKView){ }

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) 
{  
sceneTransition() 
}

func sceneTransition(){
let nextScene = GameOver(size: size)
nextScene.scaleMode = scaleMode
let gameOverTransition = SKTransition.flipHorizontalWithDuration(1.0)
view?.presentScene(nextScene, transition: gameOverTransition)
}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28732568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档