使用Swift创建SKSpriteNode子类

时间:2014-08-20 06:00:16

标签: ios swift sprite-kit subclass skspritenode

我试图创建一个类,它是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

我该如何解决?

1 个答案:

答案 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