繁体   English   中英

忽略Box2d(iphone)中机体之间的碰撞

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM