所以我对 Box2D 很陌生,我正在尝试弄清楚如何使用 b2ContactListener。
您是否允许为一个世界设置多个 Contact Listeners?我会这么认为。但是当像这样设置两个联系人监听器时:
world.SetContactListener(listener);
world.SetContactListener(listener2);
它的行为就像listener2
是唯一的一组。这是为什么?另外,当我更改设置侦听器的顺序时,如下所示:
world.SetContactListener(listener2);
world.SetContactListener(listener);
然后它的行为就像listener
是唯一的联系侦听器集并忽略listener2
。
我认为为什么会出现这种行为的唯一原因是因为两个侦听器都覆盖了BeginContact
andEndContact
方法,所以它很困惑。
顺便说一下,我正在使用 Box2D (Box2DWeb) 的 JavaScript 端口。但是,如果您知道 Objective-C 或 C++ 中问题的解决方案,那很好,因为我知道这些语言。