碰撞检测中的NullPointerException

时间:2013-09-23 09:30:24

标签: java libgdx box2d collision-detection collision

我使用libgdx和box2d制作游戏。我有动态的身体和静态。当动态体与静态碰撞时,动态应该返回到起点(矢量(0,0))。 我的联系方式:

public void beginContact(Contact contact) {
    body = contact.getFixtureA().getBody();
    bodyBanana = contact.getFixtureB().getBody();
    body.getUserData();
     if(body.equals(bodyBanana) )
        {
            body.setLinearVelocity(new Vector2(0 , 0));
        }
}

我在render()方法中调用它:

this.beginContact(contact);

但我在行中有NullPointerException:

if(body.equals(bodyBanana) 

我不知道发生了什么事?谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

是的,你不应该用自己的联系人打个电话。值得注意的是,我最后一次在联系人中使用了boxd2时也获得了NPE,而且代码正是我之前使用的代码。可能更新带来了这种行为。对我来说,忽略特定的联系就容易了

bodyBanana = contact.getFixtureB().getBody();
if(body==null || bodybanana==null) return; //add this
body.getUserData();

请注意。我不是唯一一个现在获得无效联系的人,就像你一样。