0

box2d (Andengine) で 2 つのボディ間の接触を無効にする方法。私は使用contact.setEnabled(false)しましたが、これは私にとってはうまくいきませんでした。参考までに以下にコードを載せておきます。

    @Override
    public void beginContact(final Contact pContact) 
    {
        final Fixture fixtureA = pContact.getFixtureA();
        final Body bodyA = fixtureA.getBody();
        final Object userDataA = bodyA.getUserData();

        final Fixture fixtureB = pContact.getFixtureB();
        final Body bodyB = fixtureB.getBody();
        final Object userDataB = bodyB.getUserData();


        if(userDataA==null || userDataB==null)
            return;


        if(userDataA.equals(target) && userDataB.equals(ball)
        {   
              pContact.setEnabled(false);             

            }               
    }
4

3 に答える 3

2
    @オーバーライド
    public void preSolve(連絡先、Manifold oldManifold)
    {{
        PhysicsConnectorManager mPC = this.mPhysicsWorld.getPhysicsConnectorManager();
        ボディtargetBody=mPC.findBodyByShape(target);
        ボディballBody=mPC.findBodyByShape(ball);
        if(contact.getFixtureA()。getBody()== targetBody && contact.getFixtureB()。getBody()== ballBody)
        {{
            contact.setEnabled(false);
        }
        そうしないと
        {{
            contact.setEnabled(true);
        }
    }
于 2011-09-28T21:26:36.370 に答える