忽略Box2d中的物体碰撞(iphone)
问题描述:
我有3种类型的物体。它们是忽略Box2d中的物体碰撞(iphone)
1)MouseJointBody(它与mouseJoint仅移动)
2)2 MovingBodys(它是在世界上连续移动)
3)StaticBody(它被固定在恒定位置)
我需要这些机构之间的碰撞:
1)MouseJointBody与MovingBodys和StaticBody和世界bounderies
2)StaticBody只有MouseJointBody
3)只与MouseJointBody和世界bounderies
4)MovingBodys相互碰撞
但不需要与StaticBody和MovingBody碰撞MovingBodys。我设置过滤数据,这些机构如下面的代码:
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不会与世界博相撞X。这两个人走出了这个世界。请告诉我这个解决方案。
答
在先知是在Box2D的一个proyect baseb存在CollisionCategory但Box2D的解决不同
请查看遵循discussion
的想法是分配一个身型是每个,而机构能只碰撞。
在discussiontreated类似的情况,A打B,C命中d,但A不打一
答
我想,当你使用过滤器,你需要使用过滤器,墙壁。 并设置所有的maskBits。
MovingBodys为例:
fixDef.filter.categoryBits=0x0004;
fixDef.filter.maskBits= 0x0002 | 0x0006;
(0x0006是墙的categoryBits)这可能有助于
:http://www.iforce2d.net/b2dtut/collision-filtering – iforce2d 2013-03-16 19:44:05