【问题标题】:Box2D Contact Listener , LibGDXBox2D接触监听器,LibGDX
【发布时间】:2014-12-06 17:36:23
【问题描述】:

我正在使用 LibGDX 和 Box2D 开发游戏。我想在两个物体碰撞时获得力或冲动,但我找不到正确的方法,如何使用接触侦听器来获得冲动或力?我无法使用 postSolve 方法中的 ContactImpulse 参数获得冲动.谁能帮帮我?

     new ContactListener() {

    @Override
    public void preSolve(Contact contact, Manifold oldManifold) {
        // TODO Auto-generated method stub

    }

    @Override
    public void postSolve(Contact contact, ContactImpulse impulse) {
        // TODO Auto-generated method stub

    }

    @Override
    public void endContact(Contact contact) {
        // TODO Auto-generated method stub

    }

    @Override
    public void beginContact(Contact contact) {
        // TODO Auto-generated method stub

    }
};

【问题讨论】:

    标签: libgdx box2d


    【解决方案1】:

    preSolve(Contact contact, Manifold manifold)方法中,可以查询碰撞的两个物体的速度。使用contact.getFixtureA()contact.getFixtureB()可以得到每个fixture的body,使用body.getLinearVelocity()。

    preSolve 方法是在 box2D 实际解决碰撞之前调用的,因此在碰撞的瞬间,碰撞速度仍然可以访问。

    正如手册所述:“预求解事件也是确定点状态和碰撞接近速度的好地方”

    您可以使用preSolve 中提供的信息(例如物体的重量以及它们移动的速度)来决定它将如何影响您的物体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多