我有图标是节点" shelf"的孩子,这是" self"(场景)的孩子。我也有节点" vehicle"的孩子的装饰,也是" self"的孩子。
当图标从架子上拖到车辆上时,图标节点被移除,并且在其位置产生装饰节点,该节点成为" vehicle"而不是" shelf"。这是一个问题:当装饰节点产生时,它会在场景中跳得很远,因为" shelf"和"车辆"是不协调的。
如何将新装饰节点从" shelf"中的位置转换?节点到" vehicle"中的新位置这样它就不会跳?
(如果你需要,我可以发布代码,但会很长很麻烦。)
答案 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