0

我知道如何在更新循环中检查碰撞 - 但我需要查看两个物体是否在 box2D 中接触或重叠。我有指向这些对象的指针,我不想在更新时检查。

我仍在学习 Box2D,如果这是一个愚蠢的问题,我深表歉意。我已经尝试解决这个问题一个小时左右,但我没有任何运气。

看起来您可以使用b2TestOverlapor来执行此操作b2CollideCircles(因为对象是 b2CircleShapes)。如果其中任何一个是正确的策略,您可以从给定的身体中获得形状,我应该使用什么作为变换值?如果这些不是要走的路,我如何检查两个给定的 b2Body 对象是否重叠或接触

更新:这是我通过 LearnCocos2D 获得的代码:

    -(BOOL)isTouchingCentre:(b2Body*)bodyToTest{
    //body is a b2Body object
        bool overlap = b2TestOverlap(body->GetFixtureList()->GetShape(), bodyToTest->GetFixtureList()->GetShape(), body->GetTransform(), bodyToTest->GetTransform());
        return overlap;

    }
4

1 回答 1

1

不确定 b2TestOverlap 的细节,但我会试一试。假设它们只有一种形状,您可以从身体中获取必要的信息:

body->GetTransform();
body->GetFixtureList()->GetShape();
于 2012-05-24T20:40:41.207 回答