【发布时间】:2012-11-19 00:04:56
【问题描述】:
我正在使用 Box2DWeb 2.1a,它是 Box2DFlash 的直接端口。
我通过设置类别和掩码位来使用联系人过滤器 (b2FilterData)。这部分有效,但有一些我没想到的令人讨厌的行为。当不应该碰撞的项目也与另一个他们应该碰撞的对象接触时,这些对象也会相互碰撞。我不想要这个,但不知道如何摆脱它。
我创建了一个带有 ShouldCollide 方法的 b2ContactFilter,它是 b2ContactFilter.prototype.ShouldCollide 方法的精确副本,以便在接触时打印出类别和掩码位的值。当错误的碰撞发生时,我注意到 filter1.categoryBits 和 filter1.maskBits 分别变成了 0x0001 和 0x65535。这就好像 b2FilterData 是一个新实例,或者 b2Body 已被分配一个新的 b2FixtureDef 实例。不过,我不知道为什么会这样。
【问题讨论】:
-
你能分享整个代码吗??
标签: javascript filtering box2d collision