如何检测碰撞并在碰撞后移除 body 和图像

how to Detect Collision and Remove body and image after Collision

我是 AndEngine 的新手,正在尝试检测碰撞并在碰撞时销毁 body。到目前为止我已经试过了。

 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");
            }

`

但是不行,总是进入else部分。我应该怎么办?我试过使用 contactListener 来处理,但它变得太乱且难以控制。我目前在 andengine 中使用 eclipse 和 physicsbox2dextention。

您应该创建一个新的 "ContactListener" 并将其绑定到您的 "PhysicsWorld" 通过 "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");
        }

    }