有什么简单的方法可以测试SKPhysicsBody是否完全包含其他方法?

bodyA之类的东西包含bodyB的每个点,等等。

只是想问问您,在实现一些2D数学帮助器之前,使用附加到给定节点或其他内容的附加“元” -CGPath来完成此操作。

最佳答案

没有简单的方法,但是有些方法可能会有用。如果您的身体是矩形的并且匹配其节点的框架,那么可能值得尝试:

BOOL isContained = CGRectContainsRect(bodyA.node.frame, bodyB.node.frame); // bodyA is the container, bodyB is examined for being contained


如果您的身体是用完全任意的路径创建的多边形,那么找到它们的包容性将是一项复杂的任务。这是一个长镜头,但是使用上述方法与CGPathGetBoundingBox结合可以得到一些初始近似值-它将返回多边形周围的矩形,然后可以检查它们是否重叠(根据需要使用CGRectInset)。

还有一个非常接近的SKPhysicsWorld方法:-(SKPhysicsBody *)bodyInRect:(CGRect)rect,但是它仅返回与矩形相交的SKPhysicsBody。

关于ios - SKPhysicsBody遏制测试?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21883065/

10-12 15:43