我是Swift和Xcode,试图为iOS做一个简单的文字冒险。游戏从具有“开始”按钮的GameScene开始。当它在按钮上点击时,它将移动到第一个PlayScene实例。它具有一些文本(场景描述)和两个选项(按钮A和B)。当它在按钮上注册轻击时,它将移至相应的PlayScene实例。依此类推,直到到达EndScene,该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
}

我收到此错误:

“必需”初始化程序“init(coder :)”必须由“SKScene”的子类提供

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

最佳答案

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

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

关于ios - 如何为SKScene的子类创建初始化程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36266971/

10-11 04:35