我知道如何在更新循环中检查碰撞 - 但我需要查看两个物体是否在 box2D 中接触或重叠。我有指向这些对象的指针,我不想在更新时检查。
我仍在学习 Box2D,如果这是一个愚蠢的问题,我深表歉意。我已经尝试解决这个问题一个小时左右,但我没有任何运气。
看起来您可以使用b2TestOverlap
or来执行此操作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;
}