我有三种类型的主体。他们是
1) MouseJointBody(它只与mouseJoint一起移动)
2) 2 MovingBodys(它在世界上连续移动)
3) StaticBody(固定在固定位置)
我需要这些物体之间的碰撞:
1) MouseJointBody with movingbody and StaticBody and world boundaries
2) StaticBody仅与MouseJointBody
3)移动身体只与MouseJointBody和世界边界
移动的物体相互碰撞
,但不需要与StaticBody和MovingBody碰撞。我为这些主体设置过滤器数据,如下面的代码:
StaticBody:
fixDef.filter.categoryBits=0x0004;
fixDef.filter.maskBits= 0x0002;
MovingBodys:
fixDef.filter.categoryBits=0x0004;
fixDef.filter.maskBits= 0x0002;
MouseJointBody:
fixDef.filter.categoryBits=0x0002;
fixDef.filter.maskBits= 0x0004;
一切都工作得很好,但我的MovingBodys没有相互碰撞,MouseJointBody和MovingBody没有与世界盒子碰撞。这两个人要离开这个世界了。请告诉我这个问题的解决方法。
在Farseer中,这是一个项目,在Box2D中存在CollisionCategory,但在Box2D中解决不同的
请审阅下面的讨论
的想法是将物体类型指定为each,并且物体只能碰撞。
在讨论中处理了一个类似的情况,a击中B, C击中D,但a没有击中a
我认为,当你使用过滤器时,你需要对墙壁应用过滤器。并设置所有的掩码位。
movingbody的例子:
fixDef.filter.categoryBits=0x0004;
fixDef.filter.maskBits= 0x0002 | 0x0006;
(0x0006是分类位的墙)