ios - SKPhysicsBody 遏制测试?

标签 ios sprite-kit skphysicsbody

有什么简单的方法可以测试 SKPhysicsBody 是否完全包含另一个

bodyA 这样的东西包含了 bodyB 的每个点,左右。

只是想在实现一些 2D 数学助手之前问你如何使用附加的“元”-CGPaths 附加到给定节点或其他东西。

最佳答案

没有直接的方法,但有些方法可能对您有用。如果您的 body 是矩形的并且与节点的框架匹配,那么这可能值得尝试:

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

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

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

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

相关文章:

ios - swift 中的 "fatal error: Index out of range"

ios - 将数据传递给 Swift 中的容器 View ?

ios - 在 Swift 中下载图片时,Firebase 引用为 'variable not available'

ios - SpriteKit传送带

objective-c - 场景的 Sprite 套件快速边界

ios - 使用适用于 IOS 的 Google Maps SDK 时出现 Apple Mach-O 链接器错误

ios - 应用发布 iAd 横幅不显示广告

swift - 节点的设置定时器

ios - SKAction scaleXTo :-1

swift - 如何对加速度计进行编码以使其具有固定的 x 位置