SpriteKit:检测旋转节点的重叠?

SpriteKit: detect overlap of rotated nodes?

假设节点A是节点B的子节点。为 nodeB 更改 zRotation 的值有效地旋转了 nodeA,但 nodeA 的位置(因为它相对于 nodeB)保持不变。

现在假设nodeA 已从nodeB 中移除,但它的位置在屏幕中保持固定。 nodeC 添加到 nodeB 并旋转。

如何检测节点 C 和节点 A 之间的重叠? containsPoint 在 SKNode 中,as described here 不起作用,因为 nodeC 和 nodeA 的位置都不会因旋转而改变。

您可以测试节点与 - (BOOL)intersectsNode:(SKNode *)node 的交集。但在这种情况下,节点需要位于同一节点树中。也许你不应该在测试前从 nodeB 中删除 nodeA?