我在Android应用程序中使用AndEngine和Box2d。
我该怎么做,以便当玩家和硬币碰撞时,玩家穿过硬币而不碰到它就像是一堵墙吗?
public class GameScene extends Scene {
GameScene() {
Body playerBody = PhysicsFactory.createBoxBody(world, playerSprite, BodyType.DynamicBody, fixtureDef);
PhysicsConnector playerConnector = new PhysicsConnector(playerSprite, playerBody, true, false);
world.registerPhysicsConnector(playerConnector);
Body coinBody = PhysicsFactory.createBoxBody(world, coinSprite, BodyType.StaticBody, fixtureDef);
PhysicsConnector coinConnector = new PhysicsConnector(coinSprite, coinBody, true, false);
world.registerPhysicsConnector(coinConnector);
}
private ContactListener createContactListener(){
//if player and coin collide --> destroy coin
}
}
最佳答案
了解Box2D中的传感器固定装置。您希望硬币成为传感器。从Box2D手册中:
有时候游戏逻辑需要知道两个装置何时重叠
应该没有碰撞响应。这是通过使用传感器完成的。一个
传感器是一种检测碰撞但不会产生碰撞的固定装置
响应。