我在另一个节点上添加了一个子节点,我想获取子节点相对于视图坐标而非父节点坐标的位置。
获取子节点相对于其父节点的position
,然后使用 convertPoint:fromNode:
或 convertPoint:toNode:
方法从父节点的坐标系转换为场景的坐标系。(请记住,SKScene
继承自 SKNode
并且是节点层次结构的根节点,因此您可以将其与这两种方法中的任何一种一起使用。) 如果你需要在UIKit视图坐标空间中工作,则使用场景的 convertPointToView:
方法。
如果您所说的“视图坐标”是场景坐标,那么请查看我使用的此Swift解决方案:
extension SKNode {
var positionInScene:CGPoint? {
if let scene = scene, let parent = parent {
return parent.convert(position, to:scene)
} else {
return nil
}
}
}
然后你可以以同样的方式获取场景位置,就像获取常规位置一样。这里有一个例子:
let positionInParent = childNode.position
let positionInScene = childNode.positionInScene? //optional return type