有什么简单的方法可以测试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/