Fork me on GitHub

box2d 刚体碰撞设定方法

box2d 刚体碰撞设定方法
 
     fixtureDef.filter.categoryBits指自己所属的碰撞种类,fixtureDef.filter.maskBits指与其碰撞的种类;b2FixtureDef fixtureDef;注意 fixtureDef.filter.categoryBits 的值必须是2的倍数,假如有两个body 他们的 filter.categoryBits分别为2,4,则另一个body要想与他们两个都发生碰撞,则其filter.maskBits应该为: 2+4= 6.

   对于fixtureDef.filter.groupIndex 属性: 当其为负值时,表示该组的对象不发生碰撞,为正值则表示该组的对象发生碰撞;另外,要使两个对象不发生碰撞,则: groupIndex 属性必须为负, 并且groupIndex 的值一样,这样才能不发生碰撞, 其他情况都会发生碰撞(即两个不相同的负值的body也会发生碰撞. 由上述可知).

   控制body是否发生碰撞有两种方法: 法1: 用fixtureDef.filter.categoryBits(自己所属的碰撞种类)和 fixtureDef.filter.maskBits(指定碰撞种类); 法2:直接使用fixtureDef.filter.groupIndex即可 当上述两种情况都使用的话,则由fixtureDef.filter.groupIndex决定 因为fixtureDef.filter.groupIndex的优先级高些 。

 

注:文章摘自http://hi.baidu.com/daojianmahun/blog/item/6dcf74c24b31443ae4dd3b67.html

posted on 2012-03-14 14:04  pengyingh  阅读(1564)  评论(0编辑  收藏  举报

导航