我有3种类型的身体。他们是
1)MouseJointBody(仅与mouseJoint一起移动)
2)2个MovingBodys(在世界上不断移动)
3)StaticBody(固定在固定位置)
我需要这些物体之间发生碰撞:
1)具有MovingBodys和StaticBody以及世界边界的MouseJointBody
2)仅使用MouseJointBody的StaticBody
3)仅与MouseJointBody和世界边界一起使用MovingBodys
4)MovingBody相互碰撞
但不需要与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;
一切正常,但我的MovingBody不会相互碰撞,MouseJointBody和MovingBody不会与世界框碰撞。这两个正在消失。请告诉我该解决方案。
最佳答案
在Farseer中,Box2D中的proyect baseb存在CollisionCategory,但在Box2D中要解决不同的问题
请查看以下discussion
我们的想法是指定每种类型的物体,并且物体只能碰撞。
在讨论中处理了类似的情况,A击中B,C击中D,但A击中A