【问题标题】:how to Detect Collision and Remove body and image after Collision如何检测碰撞并在碰撞后移除身体和图像
【发布时间】:2015-02-03 11:08:44
【问题描述】:

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

`

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

【问题讨论】:

  • 好吧,联系听众是最好的选择,如果它变得太混乱,那恐怕是你的代码结构/设计问题。但是如果没有看到该代码,我们无法告诉您如何“解开”它。
  • thnkxxx 很多 @Cristian Olaru.. 适用于... ;)

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


【解决方案1】:

您应该创建一个新的“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");
        }

    }

【讨论】:

  • jumpy 是的,我已经这样做了..但是因为我无法回答所以..我接受你的......因为你也推荐了我正确的答案!
猜你喜欢
  • 2023-04-07
  • 2013-08-21
  • 2011-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-30
  • 1970-01-01
相关资源
最近更新 更多