我的图标是节点“shelf”的子节点,它是“self”(场景)的子节点。我也有节点“vehicle”的子节点的装饰,它也是“self”的子节点。
当一个图标从货架上拖到车辆上时,图标节点会被移除,并在其位置生成一个装饰节点,该节点是“车辆”而不是“货架”的子节点。这是一个问题:装饰节点生成时,由于“货架”和“车辆”的坐标系不协调,它在场景中跳得很远。
如何将新的装饰节点从它在“货架”节点中的位置转换为它在“车辆”中的新位置,使其不会跳跃?
(如果您需要,我可以发布代码,但它会很长而且很乱。)
Best Answer-推荐答案 strong>
假设您使用的是 Sprite Kit,您可以使用 SKNode 方法 convertPoint:toNode: 在坐标系之间转换点。
因此,例如,一旦在车辆节点的顶部拖动结束:
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
关于iOS - 将点从一个坐标系转换为另一个坐标系,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/23585975/
|