如何继承 SKScene
How to subclass SKScene
我收到这些错误,但我不知道如何修复它们。我想像这样创建固定大小的 SKScene:
width: screenWidth
height: screenHeight/10
我不知道如何以正确的方式子类化 SKScene。
当您在 class 初始化之前尝试访问属性时会发生这种情况。
如果您将它移到 super.init
行之后,它将起作用,例如:
...
super.init(size: fixedSize)
self.name = name
self.buttons = buttons
edit 只是想,这有一个例外,我刚刚确认了这一点。 Playground 不喜欢它,但实际的应用程序喜欢它:
class someClass: NSObject {
let a = 2
var b = 3
override init(){
let c = self.a
let d = self.b
super.init()
print("c: \(c), d:\(d)")
}
func foo(){
print("bar \(a)")
}
}
我是这样解决的:
init(buttons: Button) {
self.buttons = buttons
super.init()
let fixedSize = CGSize.init(width: screenWidth, height: screenHeight/10)
super.size = fixedSize
}
我删除了 "name" 因为我不再需要它了。我移动了self.buttons = buttons
因为需要在super.init()
之前设置
我收到这些错误,但我不知道如何修复它们。我想像这样创建固定大小的 SKScene:
width: screenWidth
height: screenHeight/10
我不知道如何以正确的方式子类化 SKScene。
当您在 class 初始化之前尝试访问属性时会发生这种情况。
如果您将它移到 super.init
行之后,它将起作用,例如:
...
super.init(size: fixedSize)
self.name = name
self.buttons = buttons
edit 只是想,这有一个例外,我刚刚确认了这一点。 Playground 不喜欢它,但实际的应用程序喜欢它:
class someClass: NSObject {
let a = 2
var b = 3
override init(){
let c = self.a
let d = self.b
super.init()
print("c: \(c), d:\(d)")
}
func foo(){
print("bar \(a)")
}
}
我是这样解决的:
init(buttons: Button) {
self.buttons = buttons
super.init()
let fixedSize = CGSize.init(width: screenWidth, height: screenHeight/10)
super.size = fixedSize
}
我删除了 "name" 因为我不再需要它了。我移动了self.buttons = buttons
因为需要在super.init()