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

如何将.sks文件链接到SpriteKit中的.swift文件,第1张

概述我在XCode 6中看到有一个内置的级别编辑器.我找不到很多关于如何使用它或它是如何工作的文档,但我能够弄清楚如何使用它来制作SKSpriteNodes然后使用childNodeWithName()将它们链接到.swift文件.当你创建一个新的SpriteKit项目时,它以GameScene.swift和GameScene.sks开头.我能够使用它们在视觉上制作一个级别,然后我可以在GameSce 我在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)
总结

以上是内存溢出为你收集整理的如何将.sks文件链接到SpriteKit中的.swift文件全部内容,希望文章能够帮你解决如何将.sks文件链接到SpriteKit中的.swift文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1049858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存