[英]Ignoring Collisions Between Bodies in Box2d (iphone)
我有3种类型的身体。 他们是
1)MouseJointBody(仅与mouseJoint一起移动)
2)2个MovingBodys(它在世界上不断移动)
3)StaticBody(固定在固定位置)
我需要这些身体之间的碰撞:
1)带有MovingBodys和StaticBody以及世界bounderies的MouseJointBody
2)StaticBody仅适用于MouseJointBody
3)MovingBodys只有MouseJointBody和世界bounderies
4)MovingBodys相互碰撞
但不需要与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中的proyect baseb存在CollisionCategory但在Box2D中解析不同
请查看以下讨论
我们的想法是分配每种体型,并且体型只能碰撞。
在讨论中处理了一个类似的案例,A命中B,C命中D,但A没有命中A
我认为,当您使用过滤器时,您需要将过滤器应用于墙壁。 并设置所有的maskBits。
MovingBodys例证:
fixDef.filter.categoryBits=0x0004;
fixDef.filter.maskBits= 0x0002 | 0x0006;
(0x0006是墙的类别位)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.