我试图创建一个类,它是SKSpriteNode的子类,我想为它添加其他属性和函数。但是在第一步中我遇到了一个错误。 这是我的代码:
import SpriteKit
class Ball: SKSpriteNode {
init() {
super.init(imageNamed: "ball")
}
}
它不是编译错误,它是运行时错误。它说:Thread 1: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0)
和fatal error: use of unimplemented initializer 'init(texture:)' for class Project.Ball
。
我该如何解决?
答案 0 :(得分:43)
您必须为SKSpriteNode
调用指定的初始值设定项。我真的很惊讶你没有得到关于没有完全实现SKSpriteNode
的另一个错误,你使用的是旧的Xcode6 beta吗?
由于您必须使用指定的初始值设定项,因此需要调用super.init(texture: '', color: '', size: '')
。
这将是这样的:
class Ball: SKSpriteNode {
init() {
let texture = SKTexture(imageNamed: "ball")
super.init(texture: texture, color: nil, size: texture.size())
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
注意: 我还为Xcode需要的init
添加了NSCoder
。