使用 Swift 子类化 SKShapeNode
Posted
技术标签:
【中文标题】使用 Swift 子类化 SKShapeNode【英文标题】:Subclassing SKShapeNode with Swift 【发布时间】:2014-06-16 00:04:22 【问题描述】:我正在尝试使用 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))
所以我的问题是 - 如何在 STGridNode
的初始化程序中实现 rectOfSize
?我试过了:
init(rectOfSize: CGPoint)
super.init(rectOfSize: rectOfSize);
但这给出了一个错误:'找不到接受提供的参数的 init 重载'
【问题讨论】:
尝试初始化方法时遇到什么错误? @drewag,我已经更详细地更新了我的问题。谢谢:) 【参考方案1】:您尝试的代码有两个问题:
rectOfSize
in SKShapeNode
采用 CGSize
而不是 CGPoint
SKShapeNode
中的 rectOfSize
是一个方便的初始化程序,因此您将无法从子类中调用它。您必须致电 super.init()
并自己实现 rect 功能
你可以这样做:
init(rectOfSize: CGSize)
super.init()
var rect = CGRect(origin: CGPointZero, size: rectOfSize)
self.path = CGPathCreateWithRect(rect, nil)
【讨论】:
self.path = CGPath(rect: rect, transform: nil)以上是关于使用 Swift 子类化 SKShapeNode的主要内容,如果未能解决你的问题,请参考以下文章
适用于 iOS 7.1 的带有 swift 的 SKShapeNode