如何检测碰撞并在碰撞后移除 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");
}
}
我是 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");
}
}