したがって、私は Box2D を初めて使用し、b2ContactListener の使用方法を理解しようとしています。
1 つのワールドに複数のコンタクト リスナーを設定できますか? そう思うでしょう。しかし、次のように 2 つの連絡先リスナーを設定すると、次のようになります。
world.SetContactListener(listener);
world.SetContactListener(listener2);
listener2
唯一のセットのように動作します。何故ですか?また、リスナーを次のように設定する順序を変更すると、次のようになります。
world.SetContactListener(listener2);
world.SetContactListener(listener);
次にlistener
、唯一の連絡先リスナー セットであるかのように動作し、 を無視しlistener2
ます。
なぜこれがこのように振る舞うのかと思う唯一の理由は、両方のリスナーがメソッドBeginContact
とEndContact
メソッドをオーバーライドするため、混乱しているためです。
ちなみにBox2D(Box2DWeb)のJavaScriptポートを使用しています。しかし、Objective-C または C++ の問題に対する解決策を知っていれば、私はそれらの言語を知っているので問題ありません。