I am trying to create a convenience initializer that overrides the initializer convenience init? (fileNamed:)in SKScene so that I can pass some initial values to the scene as well as unzip the .sks file. The problem is that when I try to do this, it seems that a subclass of SKScene (GameScene) cannot see the convenience init? (fileNamed:)superclass. Here are some of my attempts:
Class GameScene : SKScene {
var stage : Int?
override init(size: CGSize) {
super.init(size: size)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
convenience init?(fileNamed: String, stage: Int) {
self.init(fileNamed: fileNamed)
self.stage = stage
}
Another attempt I found suggested as a workaround:
Class GameScene : SKScene {
var stage : Int?
override init(size: CGSize) {
super.init(size: size)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
convenience init?(fileNamed: String) {
self.init(fileNamed: fileNamed)
}
convenience init?(fileNamed: String, stage: Int) {
self.init(fileNamed: fileNamed)
self.stage = stage
}
The debugger shows an infinite loop. GameScene.init(fileNamed : String) -> GameScene?
How to do it? I need to continue my life! (and this project ...)