首页 文章

Box2D未检测到碰撞

提问于
浏览
2

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

这就是它目前的样子:Image

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

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

  • Player(动态身体)
    玩家只受重力和一些施加力的影响(没有变形)

  • 地面(运动体)
    地面只有一个linearVelocity('s why it'不是一个静态的身体)

  • 障碍物(运动体)
    使用setTransform(位置,角度)方法移动障碍物

  • Despawner(静体)

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

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

谢谢您的帮助!

1 回答

  • 4

    从这里的手册:

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

    运动物体不会与其他静态或运动物体发生碰撞 .

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

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

相关问题