有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何检测碰撞并在碰撞后删除实体和图像

我是安德林的新手,试图检测碰撞并在碰撞时摧毁身体。到目前为止我已经试过了

 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来控制它,但它变得太混乱,难以控制。我目前在安德林与eclipse和PhysicsBox2Extension合作


共 (1) 个答案

  1. # 1 楼答案

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