如果包含的场景的anchorPoint
为(0.5,0.5),那么将点转换为绝对坐标的正确方法是什么?从概念上讲,我们将anchorPoint设置为(0.5,0.5),然后添加一个位置为(0,0)的子项。假设设备是5S,转换应该产生(160,240)。
我们正在使用Swift。
答案 0 :(得分:0)
在场景中添加SKNode
。然后根据场景的框架设置其位置。示例代码在这里:
var node = SKNode()
node.anchorPoint = CGPointMake(0,0)
node.position = CGPointMake(-scene.frame.width/2, -scene.frame.height/2)
scene.addChild(node)
在此节点上添加您的精灵,您现在可以获得绝对位置〜
答案 1 :(得分:0)
您可以使用SKNode提供的以下methods来获取节点树中的相对点。
convertPoint:toNode:
convertPoint:fromNode:
使用上面的Carrl方法添加SKNode,您可以获得如下绝对点:
var relativeNode = SKNode()
relativeNode.anchorPoint = CGPointMake(0,0)
relativeNode.position = CGPointMake(-scene.frame.width/2, -scene.frame.height/2)
scene.addChild(relativeNode)
var absolutePoint = scene.convertPoint(someNode.position, toNode: relativeNode)
//This will result in {160, 240} on a 5S.
这些方法考虑了节点的各种anchorPoints。