【发布时间】:2016-07-11 13:26:01
【问题描述】:
我对 SKShapeNode 的位置有疑问。我正在存储用户触摸屏幕的路径。然后我创建一个多边形并将其放入pathOfShapevariable。我创建了该路径的 SKShapeNode,一切正常。我将用户绘制的多边形整齐地绘制在屏幕上。
但是我想在多边形上添加更多东西。由于某种原因,我无法获得 SKShapeNode 的位置。相反,如果我尝试使用 position 属性,它会指向 x:0.0, y:0.0,如下所示。这是怎么回事?如何获得我的 SKShapeNode 的实际 position?
var pathOfShape = CGPathCreateMutable()
//path of polygon added here to pathOfShape
var shapeNode = SKShapeNode()
shapeNode.path = pathOfShape
shapeNode.name = "shape"
self.addChild(shapeNode)
let node1 = self.childNodeWithName("shape")
print(node1?.position)
结果到Optional((0.0, 0.0))
【问题讨论】:
-
由于您没有更改形状的
position属性,它仍然是默认值,(0, 0)。向形状添加CGPath不会改变其位置。路径相对于 (0, 0) 呈现。 -
@0x141E 但是 SKShapeNode 不在 0,0 中,而是在用户绘制它的位置
-
路径被绘制为 relative 到 (0, 0)。多边形中的点可以具有任何值(在场景中),但
CGPath的 origin 是形状节点的位置。 -
@0x141E 所以为了得到形状的位置,我必须从路径中得到它?
-
您可以在用户点击屏幕时将多边形的点保存在数组中,然后计算数组中点的质心。
标签: ios swift sprite-kit cgpath skshapenode