Cocoa touch 用Swift子类化SKShapeNode
我正试图用Swift将Cocoa touch 用Swift子类化SKShapeNode,cocoa-touch,sprite-kit,swift,Cocoa Touch,Sprite Kit,Swift,我正试图用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:
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)
}
}
init(rectOfSize: CGSize) {
super.init()
var rect = CGRect(origin: CGPointZero, size: rectOfSize)
self.path = CGPathCreateWithRect(rect, nil)
}
在我的代码中,我希望这样做:
let s = STGridNode(rectOfSize: CGSize(width: 100, height: 100))
所以我的问题是-如何在STGridNode
的初始化器中实现rectOfSize
?我试过:
init(rectOfSize: CGPoint) {
super.init(rectOfSize: rectOfSize);
}
但这会产生一个错误:“找不到接受所提供参数的init重载”您尝试的代码有两个问题:
SKShapeNode中的rectOfSize
采用CGSize
而不是CGPoint
SKShapeNode
中的rectOfSize
是一个方便的初始值设定项,因此您无法从子类调用它。您必须调用super.init()
并自己实现rect功能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)
}
}
init(rectOfSize: CGSize) {
super.init()
var rect = CGRect(origin: CGPointZero, size: rectOfSize)
self.path = CGPathCreateWithRect(rect, nil)
}
当你尝试初始化方法时,你会遇到什么错误?@drewag,我已经更新了我的问题的更多细节。谢谢:)self.path=CGPath(rect:rect,transform:nil)