这一章 我们来研究下 jbox2d 是如何坚持碰撞的  大家应该都只android 碰撞有多种方法 比如 矩形碰撞检测,圆形碰撞检测,多矩形碰撞检测,像素碰撞检测, 那jbox2d又给我们提供了哪些方法呢  ?    

  在jbox2d中 其实我们完全可以不用去检查碰撞,因为jbox2d已经完全给我们封装好了,  在jbox2d中我们可以不去写各种刚体的碰撞规则,jbox2d自己会检查,并计算碰撞后的位置,而我们需要做的是把刚体的各个参数 配置好就可以了

在jbox2d中有几个碰撞行为 需要注意   如下

fixtureDef.filter.categoryBits  设置自己所属的碰撞种类 值为 2 的倍数

fixtureDef.filter.maskBits      设置与其碰撞的物体种类 值为 2 的倍数

fixtureDef.filter.groupIndex    设置是否参与碰撞 负值不参与碰撞 正值 才参与                                  碰撞

这3个属性 可以设置我们的刚体在游戏中的碰撞行为 我们来一一解析下

fixtureDef.filter.categoryBits  其值必须为2的倍数 比如说 ,有两个 body 刚体他们的categoryBits 的值分别为2和4  这时有第3个body刚体想和这两个body产生碰撞的话  那么这个body的maskBits的值必须为前面两个刚体categoryBits的值的和 也就是为 6

fixtureDef.filter.groupIndex    设置是否参与碰撞 负值不参与碰撞,正值才参与碰撞  不如 有两个body刚体我们不想它们产生碰撞 ,那么我们可以将其的gorupIndex的值设置为 负值 并且两个body的groupIndex的值是一样,这样才不会产生碰撞, 

由此可见 我们设置刚体是否碰撞我们是有两种方法的 

1: 设置刚体的fixtureDef.filter.categoryBits和fixtureDef.filter.maskBits属性

2:  设置fixtureDef.filter.groupIndex属性

但是当上面两种方法同时存在呢?  那Jbox2d会以groupIndex属性为准 因为gruopindex的优先级别会比 其他两个要高

这一张 比较简单,就不啰嗦了 , 测试代码我稍后整理后发出 嘿嘿 ,公司的项目拖的 好忙 好多事要做 ,所以有时会慢一点 更新博客 



 

 

 

 

更多相关文章

  1. Android之倍数提高工作效率的 Android Studio 奇技
  2. Android:倍数提高工作效率的 Android Studio 奇技
  3. Android Studio Tips-倍数提高工作效率的Android Studio奇技
  4. c语言计算两个数的最小公倍数
  5. c语言如何求最大公约数和最小公倍数?
  6. 用于填充表的倍数ng-repeat
  7. 如何找到一个具有负值而另一个具有相同正值的记录

随机推荐

  1. android 创建数字签名应用程序
  2. Android应用框架无边界
  3. 【Android 开发教程】经过预定义的查询字
  4. android 开发学习笔记 (一)
  5. Android 中会出现的问题:This Android SDK
  6. Android 中的单元测试(使用AndroidTestCa
  7. Android(java)学习笔记126:Android Studio中
  8. android菜鸟学习笔记12----Android控件(
  9. "Uses or overrides a deprecated API" i
  10. Android应用开发试题(收集)