Сделать подкласс SKSpriteNode с помощью Swift
Я пытаюсь создать класс, который является подклассом SKSpriteNode, и я хочу добавить к нему другие свойства и функции. Но на первом этапе я столкнулся с ошибкой. Вот мой код:
import SpriteKit
class Ball: SKSpriteNode {
init() {
super.init(imageNamed: "ball")
}
}
Это не ошибка компиляции, это ошибка времени выполнения. Как я могу это исправить?
1 ответов
вы должны вызвать назначенный инициализатор для SKSpriteNode
. Я действительно удивлен, что вы не получили еще одну ошибку о неполной реализации SKSpriteNode
, вы используете более старую бета-версию Xcode6?
так как вы должны использовать назначенный инициализатор, вам нужно позвонить 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")
}
}
Примечание: я также добавил init
на NSCoder
который Xcode потребует.