我试图用Swift继承SKShapeNode
。到目前为止,我有这样的事情:
import UIKit
import SpriteKit
class STGridNode: SKShapeNode {
init() {
super.init()
self.name = "STGridNode"
self.fillColor = UIColor(red: 0.11, green: 0.82, blue: 0.69, alpha: 1)
}
}
在我的代码中,我希望这样做:
let s = STGridNode(rectOfSize: CGSize(width: 100, height: 100))
所以我的问题是 - 如何在rectOfSize
的初始化程序中实现STGridNode
?我试过了:
init(rectOfSize: CGPoint) {
super.init(rectOfSize: rectOfSize);
}
但是这给出了一个错误:'找不到接受提供的参数的init的重载'
答案 0 :(得分:23)
您尝试的代码有两个问题:
rectOfSize
SKShapeNode
只需CGSize
而不是CGPoint
rectOfSize
中的SKShapeNode
是一个便利初始值设定项,因此您无法从子类中调用它。您必须致电super.init()
并自行实施rect功能您可以这样做:
init(rectOfSize: CGSize) {
super.init()
var rect = CGRect(origin: CGPointZero, size: rectOfSize)
self.path = CGPathCreateWithRect(rect, nil)
}