我有两个 SKShapeNode - 一个具有基于边缘的 SKPhysicsBody,一个基于体积 - 我想检测它们的相交而不发生碰撞。我的工作正常,当一个方法越过另一个方法时, SKPhysicsContactDelegate 接触方法就会被调用,但我的问题是didEndContact
当edges不再相交,即使一个物体完全包含在另一个物体内。确定真正接触或重叠而不仅仅是边缘相交的最佳方法是什么?我试过了usesPreciseCollisionDetection
,无济于事。
CGPoint locObj1 = [sprite1 locationInNode:self];
CGPoint locObj2 = [sprite2 locationInNode:self];
if([sprite1 containsPoint: locObj2]) return;
if([sprite2 containsPoint: locObj1]) return;
将其添加到 didBeginContact 和 didEndContact 的开头。这将检查其中一个节点是否包含另一个节点。如果是这样,它不会缓解您不必要地调用 didBeginContact 和 didEndContact 的问题。我不在 Mac 上,所以你可能需要稍微了解一下语法。希望这能让您朝着正确的方向前进。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)