如何为 SKScene 的子类创建初始化程序

How to create initializer for subclass of SKScene

我是 Swift 和 Xcode,正在尝试为 iOS 做一个简单的文字冒险。游戏从具有开始按钮的 GameScene 开始。当它在按钮上注册点击时,它会移动到第一个 PlayScene 实例。它有一些文本(场景描述)和两个选项(按钮 A 和 B)。当它注册一个按钮上的点击时,它会移动到相应的 PlayScene 实例。依此类推,直到到达只有文本和重启按钮的 EndScene。

我的想法是为 PlayScene 实现一个初始值设定项,它将获取一个场景应该具有的文本以及应该遵循的下一个场景。所以在我的 PlayScene.swift 中添加了以下内容:

let sceneText: String
let nextSceneA: PlayScene
let nextSceneB: PlayScene

init(sceneText: String, nextSceneA: PlayScene, nextSceneB: PlayScene) {
    self.sceneText = sceneText
    self.nextSceneA = nextSceneA
    self.nextSceneB = nextSceneB
}

我收到这个错误:

'required' initializer 'init(coder:)' must be provided by subclass of 'SKScene'

这是否意味着无法为 SKScene 的子类创建自定义初始化程序?我还能如何实现这样的场景序列?

你需要实现 init(coder:),即使它所做的只是 return 一个错误。

 required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }