Box2D未检测到碰撞

时间:2015-01-28 20:01:30

标签: java libgdx box2d collision

我正在使用LibGdx库的Box2D扩展程序进行游戏,除碰撞检测外,一切都正常。

目前的情况如下:Image

这个想法是玩家(小圆圈)可以跳入他的边界(重力被设置在地面的中心)来躲避在地面上旋转的传入障碍物。一旦障碍物到达绝望者,ContactListener应该调用一个会破坏障碍物体的方法。

首先,我有几个不同的身体:

  • 玩家(动态身体)
    玩家只受重力和一些施加的力(没有变形)的影响
  • 地面(运动体)
    地面只有一个linearVelocity(这就是为什么它不是一个静态的身体)
  • 障碍物(运动体)
    使用setTransform(位置,角度)方法移动障碍物
  • Despawner(静体)

我也使用位过滤器来管理冲突(我已经三次检查并且不是问题的根源)。

实际问题是,当障碍物体是碰撞的一部分时,我的ContactListener不会调用beginContact()方法,除非他与玩家身体发生碰撞。所有其他身体相互碰撞都很好。

感谢您的帮助!

1 个答案:

答案 0 :(得分:4)

来自这里的手册:

http://www.box2d.org/manual.html#_Toc258082973

  

运动物体不会与其他静态或运动物体碰撞。

你必须想出一种新的方法来触发这个沮丧的人。你无法在两种动能或动能和静态体型之间发生碰撞。也许是一个带传感器夹具的机身。或Y位置值。或关闭重力的动态身体。

游戏看起来很酷,期待它。