如何在 Swift 3 中创建 SKSpriteNode 的子类

How to create subclass of SKSpriteNode in Swift 3

我见过很多与我类似的问题,但它们似乎都是针对 Swift 的旧版本或非常不同的情况。无论如何,none 的解决方案对我有用。

我正在构建一个简单的 SpriteKit 游戏。基本上,我想做的就是向 SKSpriteNode class 添加一个属性:例如

let Ci = SKSpriteNode(imageNamed: "CBlob")
Ci.name = "C1"
Ci.pitch = "middle C"

目前,设置名称属性可以正常工作,因为 SKSpriteNode 具有名称属性。在 Python 中,我只能在实例化对象时声明 pitch 属性。但是,在 Swift 中添加音高属性我尝试创建一个 SKSpriteNode subclass.

class Blob : SKSpriteNode {
var pitch = "middle C"
}

但是,我不知道如何初始化 Blob 的实例。例如

let Ci = Blob(imageNamed: "CBlob")

我觉得我已经尝试了 super、override 等的所有组合,但都导致错误。

非常感谢。

事实证明我的代码没有问题,错误是由于其他原因造成的。如果有人看到这个 - 现在可以很容易地向子类添加新属性 - 你不必使用超级初始化等。

print(Ci.pitch) 

现在将给予 "middle C"。