如何在碰撞后检测碰撞并去除身体和图像

时间:2015-02-03 11:08:45

标签: java android collision-detection andengine game-physics

我是AndEngine的新手,试图在碰撞中发现碰撞并摧毁身体。到目前为止,我已经尝试过了。

 if (testingsprite.collidesWith(testingSprite1)) {
                Log.d("TAG", "Collisoion");
                mphysicworld.destroyBody(myBody);
                scene.detachChild(testingSprite1);
                myBody = PhysicsFactory.createCircleBody(this.mphysicworld,
                        testingSprite1, BodyType.DynamicBody, FIXTURE_DEF);
            }else{
                Log.d("TAG", "else Collisoion");
            }

`

但它不起作用,总是进入其他部分。我该怎么办?我已尝试使用contactListener,但它变得太乱,难以控制。我目前在andengine中使用eclipse和physicsbox2dextention。

1 个答案:

答案 0 :(得分:0)

你应该创建一个新的" ContactListener"并将其绑定到您的物理世界" 通过" physicsWorldInstance.setContactListener(...)"

并在ContactListener中覆盖" beginContact"。例如:

public void beginContact(Contact contact)
    {
        final Fixture x1 = contact.getFixtureA();
        final Fixture x2 = contact.getFixtureB();

        if (x2.getBody().getUserData().equals("player")&&x1.getBody().getUserData().equals("monster"))
        {
          Log.d("TAG", "Collisoion");
        }

    }