如何为 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")
}
我是 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")
}