这部分是SKShapeNode
var rect = CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: 30, height: 30))
self.path = CGPathCreateWithRect(rect, nil)
和
let rect = SKShapeNode(rectOfSize: CGSize(width: 30, height: 30))
他们似乎在模拟器中表现不同,我想知道这些是否有任何不同。
答案 0 :(得分:0)
SKShapeNode
的原点(0,0)点是节点的中心,其路径是相对于该点绘制的。因此,使用以下CGRect
CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: 30, height: 30))
将在形状节点中心的左下角绘制。
方便方法SKShapeNode(rectOfSize...)
通过将origin
的{{1}}参数偏移矩形宽度和高度的一半来使矩形在形状节点中居中。在这种情况下,rect CGRect
是(-15,-15)。
您可以通过抵消其来源创建以origin
为中心的CGRect
:
SKShapeNode
其中let height = CGFloat(30)
let width = CGFloat(30)
let anchorPoint = CGPoint(x:0.5, y:0.5)
CGRect(origin: CGPoint(x: -width*anchorPoint.x, y: -height*anchorPoint.y), size: CGSize(width: width, height: height))
定义精灵中与节点位置对应的相对点#"
您还可以使用anchorPoint
,它将使用其边界框将路径居中。