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