当前位置: 首页 > 面试题库 >

如何在SpriteKit中将.sks文件链接到.swift文件

西门梓
2023-03-14
问题内容

我看到在XCode
6中有一个内置的关卡编辑器。我找不到很多有关如何使用它或如何工作的文档,但是我能够弄清楚如何使用它制作SKSpriteNodes,然后使用childNodeWithName()将它们链接到.swift文件。当您创建一个新的SpriteKit项目时,它以GameScene.swift和GameScene.sks开始。我可以使用它们直观地创建一个关卡,然后可以在GameScene.swift中为其编写代码,但是当我尝试为一个新关卡制作自己的.sks和.swift文件时,无法连接.sks和我制作的.swift文件。我尝试完全按照本教程进行操作:

http://www.techotopia.com/index.php/An_iOS_8_Swift_Sprite_Kit_Level_Editor_Game_Tutorial#Creating_the_Archery_Scene

当我连接两个文件时,没有错误出现,然后当我过渡到场景时,它正确过渡了,但是我在视觉上添加到.sks中的任何内容都没有出现在模拟器中。请帮助,我已经花了数小时研究此问题的解决方案。我能够找到的有关关卡编辑器的极少数教程和论坛只谈论了以新SpriteKit项目开头的GameScene.swift和.sks。


问题答案:

此方法将取消存档sks文件,并将其初始化为调用该文件的任何SKNode子类。这意味着您可以将文件作为SKNode取消存档(因此根节点将是SKNode)并将其作为子级添加到场景中。您也可以将文件归档为GameScene或任何SKNode子类。

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
        }
    }
}

像这样使用它:

let scene = GameScene.unarchiveFromFile("GameScene")! as GameScene

要么

let levelStuff = SKNode.unarchiveFromFile("Level 1")!
self.addChild(levelStuff)


 类似资料:
  • 问题内容: 如何将JavaScript文件正确链接到HTML文档? 其次,如何在JavaScript文件中使用jQuery? 问题答案: 首先,您需要从http://jquery.com/下载JQuery库,然后以以下方式在html head标记中加载jquery库 那么您可以通过在jquery加载脚本之后编码您的jquery代码来测试jquery是否正常工作 如果要单独使用jquery脚本文件,

  • 如何正确地将JavaScript文件链接到HTML文档? 其次,如何在JavaScript文件中使用jQuery?

  • 我用的是Flink 1.4.0 我正在尝试将Table API查询的结果保存到CSV文件,但我收到错误。以下是详细信息: 我的输入文件如下所示: 我对此运行查询以仅选择犬类,我想将其保存到csv文件中: 当我运行此命令时,我看到数据集的结果被输出: 犬科动物,2 然而,我在输出文件中没有得到任何结果,我在下面看到了这些错误。我能做些什么来解决这个问题?谢谢

  • 我正在使用Spring boot starter web,并试图在我的JSP中链接我的样式表style.css。我如何使用默认配置来正确链接我的css? 中的以下行不起作用: >page.jsp: null 有人能给我解释一下原因吗?

  • 问题内容: 我想在Linux中建立一个符号链接。我已经编写了此Bash命令,其中第一个路径是我要链接到的文件夹,第二个路径是已编译的源代码。 它是否正确? 问题答案: 要创建新的符号链接(如果符号链接已存在,将失败): 要创建或更新符号链接:

  • app.js图像 我有两个文件app.js和landing.ejs,当运行服务器时,它没有显示错误,服务器正在运行,但当我转到http://localhost:3000/iam时,我得到的是ejs文件的名称,而不是ejs文件中的html内容。请帮助我。 浏览器映像 在此输入图像说明