我使用 SpriteKit 为 iOS 制作了一个游戏。
现在我还想制作 watchOS 的版本。
我添加了一个新目标,然后这些文件出现在我面前:
如果我删除 sks 文件,然后像我在 iOS 游戏中所做的那样尝试呈现一个 swift 场景,场景看起来是空的...所以我唯一能做的就是让 scene.sks 文件保持原样。
有人可以向我解释如何在不使用 sks 文件的情况下在 interfaceController.swift 中呈现一个新的 scene.swift 文件吗?
这是展示 sks 场景的 InterfaceController.swift 文件,但我想展示我自己的 swift 场景。
此致。
最佳答案
将 GameScene(filenamed:)
与 `YourScene(size:) 交换。
你的场景是 SKView
的一个子类,它有它们的主要初始化器......这是我展示的那个的链接:
https://developer.apple.com/reference/spritekit/skscene/1520435-init
所以 (filenamed:)
是一个初始化器(用于 .sks),(size:)
是另一个初始化器,因为没有 .sks。这些初始化程序与您用于所有自己的类的初始化程序完全相同。
这不是很明显,因为当您制作自己的 GameScene: SKScene
时,您没有指定初始化程序(因为它们是从您刚刚继承的 SKScene 继承的)
下面的视频还涵盖了 AW 上 SK 的大部分必要内容......它带有时间戳以解释更多你正在做的事情:
https://youtu.be/REv-w2rBsng?t=1173
上面视频中的信息几乎是我在其他任何地方都找不到的,因此我强烈建议您从头到尾观看。
笔记:
(最后我检查)
您的原版 SKScene 无法在 watch 上使用,因为它们缺少某些功能(如 touchesBegan),因为您不再使用 SKView 来呈现您的场景。所以,你必须使用手势识别器..
这里解释了如何解决这些问题:
TouchEvents in watchOS 3 SpriteKit?
关于ios - Apple Watch 上的 SpriteKit - 如何呈现场景?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41450127/