栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

SpriteKit模板中GameScene.swift和GameScene.sks文件之间的关系是什么

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpriteKit模板中GameScene.swift和GameScene.sks文件之间的关系是什么

.sks
文件是场景内容的静态存档。如果您以前曾使用Interface Builder来设置UI应用程序,则其构想大致相同,即使实现方式不同。

在UI应用程序中,您可以使用代码完成所有操作:

override func viewDidLoad() {    let someText = UITextField(...)    let aButton = UIButton(...)    // ... position everything    // ... style everything    // ... etc ...}

或者,您可以在IB(xib或情节提要)中进行所有静态内容设置,并仅使用代码来设置应用程序的动态行为-
当有人开始触摸这些按钮时发生的事情。这样做时,您为其编写代码的视图控制器作为代理对象存在于xib /
storyboard中,从而在IB中设置的内容与代码中设置的内容之间架起了桥梁。

在SpriteKit中,您有相同的选择。在Xpre 6之前,许多SK游戏都采用全代码方式:

override func didMoveToView(view: SKView) {    let player = PlumberSprite(color: .Red)    player.position = // ...    player.physicsBody = // ...    self.addChild(player)    let ground = SKSpriteNode(...)    ground.position = // ...    ground.physicsBody = // ...    self.addChild(ground)    let block = QuestionBlockSprite()    block.position = // ...    block.physicsBody = // ...    block.contents = CoinSprite()    self.addChild(block)    // ... etc etc etc ...}

对于最终的图形化静态场景,这是很多代码,甚至在您开始添加代码以使其进入游戏之前(输入处理,敌人行为,增加得分或结束游戏的物理回调等)也是如此。而且它不能很好地将您从内容中拆分出一般游戏逻辑的设计,因此很难在游戏中添加多个关卡。

相反,您可以在Xpre中使用SpriteKit编辑器来构建您的静态内容(级别),并坚持使用代码来体现动态行为和游戏逻辑。就像在IB中,视图控制器是情节提要和代码之间的桥梁一样,场景类(

GameScene.swift
在模板中)也是编辑器和代码之间的桥梁。
.sks
在运行时加载文件时(该文件的代码
GameViewController.swift
在模板中),该文件成为您的
GameScene
类的实例,并且您在编辑器中设置的所有内容都可以作为场景的子节点访问。

签出WWDC对话是一个好主意,但您错过了涵盖该主题的对话:请参阅第608节:构建SpriteKit游戏的最佳实践,以了解有关SpriteKit编辑器背后的动机,如何使用它以及如何与现场合作的更多信息。从

.sks
场景代码中的文件加载的内容。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/636388.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号