Box2D的接触听者夹具订购(box2d contact listener fixtures ord

2019-07-17 17:14发布

我想了解它是如何工作的。

在我的游戏我使用Box2D的物理,处理联系人我用接触监听器,例如:

ContactListener contactListener = new ContactListener()
{
    @Override
    public void beginContact(Contact contact)
    {
        final Fixture x1 = contact.getFixtureA();
        final Fixture x2 = contact.getFixtureB(); 

        if (x1.getBody().getUserData() != null && x2.getBody().getUserData() != null)
        {                   
            if (x1.getBody().getUserData().equals("player"))
            {                                               
                player.increaseFootContacts();
            }
        }
    }

和here`s问题,有没有在这些灯具的任何命令? 后2测试(X1或X2),我发现,在这种情况下,我的球员将是X1和其他对象X2,我也应该检查颠倒顺序? (如果X2是球员等等)?

Answer 1:

不,也不能保证其灯具是哪个。 你必须检查两种可能性,就像这样:

if ( (userdataA.equals("player") && userDataB.equals("ground")) ||
     (userdataA.equals("ground") && userDataB.equals("player")) )
         player.increaseFootContacts();


文章来源: box2d contact listener fixtures order
标签: java box2d