0

box2d の contactlistener を使用する際に混乱しました。現在、body1 と body2 があります。2 つのボディが接触している場合、fixtureA のボディが body1 または body2 であることを確認するにはどうすればよいですか?または、どのボディが FixtureA に属しているかを確認するにはどうすればよいですか?

私は実験を行い、fixtureA の本体がランダムではないことを確認しました。これで確認できるのはそれだけです。

わかりました。別の方法で質問する必要があるかもしれません。これで、fixtureA の body は body1 であり、body1 である可能性があることがわかります。

4

1 に答える 1

1

コンタクト リスナー内のフィクスチャの順序を保証または想定することはできません。非常に単純なシーンでは、通常、どのフィクスチャがどれになるかは非常に予測可能ですが、常にそうであることに依存するべきではなく、順序がランダムであるかのようにプログラムを作成する必要があります。

コンタクト リスナー コールバックで何を扱っているかを確認するには、作成時にフィクスチャ/ボディへのポインタを保持して比較するか、フィクスチャ/ボディにユーザー データを設定してチェックする必要があります。また、他のチェックを行うこともできます。たとえば、フィクスチャの形状や、フィクスチャが属するボディのタイプを確認することができます...フィクスチャをどうするかを理解するためにフィクスチャについて知る必要があるものは、あなたのゲーム。

于 2012-03-12T19:26:29.803 に答える