我正在尝试使用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);
}
但这给出了一个错误:“无法为接受提供的参数的初始化找到重载”
最佳答案
您尝试的代码有两个问题: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)
}
关于cocoa-touch - 用Swift子类化SKShapeNode,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24235185/