Box2D联系人侦听器,LibGDX

Box2D联系人侦听器,LibGDX,libgdx,box2d,Libgdx,Box2d,我正在使用LibGDX和Box2D开发游戏。我想得到两个物体碰撞时的力或冲量,但我找不到正确的方法,如何使用contact listener获得冲量或冲量?我无法使用postSolve方法中的ContactImpulse参数获得冲量。谁能帮我 new ContactListener() { @Override public void preSolve(Contact contact, Manifold oldManifold) { // TODO Au

我正在使用LibGDX和Box2D开发游戏。我想得到两个物体碰撞时的力或冲量,但我找不到正确的方法,如何使用contact listener获得冲量或冲量?我无法使用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

    }
};
preSolve(接触接触,歧管)
方法中,可以查询碰撞的两个物体的速度。使用
contact.getFixtureA()
contact.getFixtureB()
,可以获得每个装置的主体,以及使用主体.getLinearVelocity()

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

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

您可以使用
preSolve
中提供的信息,例如物体的重量和移动速度,来确定物体会受到什么影响