iOS - 将点从一个坐标系转换为另一个坐标系

时间:2014-05-10 20:28:31

标签: ios objective-c sprite-kit

我有图标是节点" shelf"的孩子,这是" self"(场景)的孩子。我也有节点" vehicle"的孩子的装饰,也是" self"的孩子。

当图标从架子上拖到车辆上时,图标节点被移除,并且在其位置产生装饰节点,该节点成为" vehicle"而不是" shelf"。这是一个问题:当装饰节点产生时,它会在场景中跳得很远,因为" shelf"和"车辆"是不协调的。

如何将新装饰节点从" shelf"中的位置转换?节点到" vehicle"中的新位置这样它就不会跳?

(如果你需要,我可以发布代码,但会很长很麻烦。)

1 个答案:

答案 0 :(得分:2)

假设您正在使用Sprite Kit,您可以使用SKNode方法convertPoint:toNode:在坐标系之间转换点。

例如,只要拖动结束于vehicleNode:

CGPoint iconPos = iconNode.position; // this is position on shelf node
iconPos = [shelfNode convertPoint:iconPos toNode:vehicleNode];

// ... remove iconNode from shelfNode
// ... make new decorationNode

decorationNode.position = iconPos; // this is now position on vehicle node

// ... add decorationNode to vehicleNode
相关问题