代码之家  ›  专栏  ›  技术社区  ›  Daniel Roca Lopez

使用过滤器检测Box2d上的碰撞,但也决定要做什么

  •  0
  • Daniel Roca Lopez  · 技术社区  · 9 年前

    我的比赛将有两支球队,每支球队都有X个球,我想检测他们碰撞的时间,不是施加力或冲动,而是对受影响的球施加“伤害”。

    我读过contactListener,但你必须检查它是来自A队还是B队,还是来自同一个队等等。问题是,我想在我读到的地方使用过滤器,但我无法决定它们碰撞时会发生什么,就像它们会根据密度、摩擦力等做出反应一样,但我想检测碰撞并应用我想要的东西。

    我正在使用libgdx和box2d

    1 回复  |  直到 9 年前
        1
  •  0
  •   mgsx-dev    9 年前

    我建议阅读以下内容: http://www.iforce2d.net/b2dtut/collision-anatomy 这是一个基于C++实现的文档化的box2D教程,但您可以在libGDX中找到所有方法和类。

    对于您想要做的事情,您只需在侦听器的presolve方法中禁用contact(contact.setEnabled(false))。这就是告诉box2D不要对碰撞施加任何力。