更新ループで衝突をチェックする方法は知っていますが、box2D で 2 つのボディが接触またはオーバーラップしているかどうかを確認する必要がある立場にあります。これらのオブジェクトへのポインターがあり、更新中に確認したくありません。
私はまだ Box2D を学んでいるので、これがばかげた質問である場合は申し訳ありません。これを1時間ほど解決しようとしましたが、運がありません。
b2TestOverlap
または多分を使用してこれを行うことができるようですb2CollideCircles
(オブジェクトはb2CircleShapesであるため)。これらのいずれかが正しい戦略である場合、特定のボディから形状を取得できますか?また、変換値として何を使用すればよいですか? これらがうまくいかない場合、指定された 2 つの 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;
}