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

问题描述:

我见过很多类似的问题,但它们似乎都是针对Swift的老版本或者非常不同的情况。无论如何,这些解决方案都不适合我。如何在Swift 3中创建SKSpriteNode的子类

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

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

当前,设置name属性工作正常,因为SKSpriteNode有一个name属性。在Python中,我只能在实例化对象时声明pitch属性。但是,在Swift中添加pitch属性我试图创建一个SKSpriteNode子类。

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

但是,我无法弄清楚如何初始化一个Blob实例。例如

let Ci = Blob(imageNamed: "CBlob") 

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

非常感谢提前。

+0

让Ci = ...你真的需要回到基础。 –

+0

如果可以的话,我会欣赏一些详细说明......我很快就有了新的东西。让出什么问题?我认为让对象仍然可以让一个人改变对象的属性? – modalmusic

+0

你的代码应该可以工作。有什么问题? – 0x141E

原来我的代码很好,错误是由于其他原因。如果有人看到这一点 - 它现在是容易的新属性添加到子类 - 你不必faff各地的超级inits等

print(Ci.pitch) 

现在会给“*C”。