我在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手册中:


有时候游戏逻辑需要知道两个装置何时重叠
应该没有碰撞响应。这是通过使用传感器完成的。一个
传感器是一种检测碰撞但不会产生碰撞的固定装置
响应。

10-08 17:04