我在为物理人员创建多边形路径时遇到问题。我正在加载一个包含路径点数组的plist。
在下图中,我有蓝点可视化来自plist的点所在的位置以创建路径。您还可以从.showsPhysics = true
查看节点周围的轮廓。然而,绿点可视化玩家和节点之间的碰撞。我应该不碰撞绿点出现的地方,你可以通过第二张图像中的节点物理实体来判断。
以下是.showsPhysics = true
现在我很确定这个问题是由polygon.move(...
部分引起的,因为当我将CGPoint从plist中的第一个点更改为未包含在plist中的不同点时,问题就会消失,但这对其他节点和plist来说并不实用。
let polygon = CGMutablePath()
for points in hull {
let point = CGPointFromString(points)
let adjustedPoint = CGPoint(x: point.x / sizeRatio, y: point.y / sizeRatio)
if polygon.isEmpty {
polygon.move(to: adjustedPoint)
}
else {
polygon.addLine(to: adjustedPoint)
}
}
polygon.closeSubpath()
以下是我将polygon.move(to: adjustedPoint)
更改为polygon.move(to:CGPoint.zero)
时可能会有所帮助的照片。谢谢!