Andengine和box2d碰撞检测

时间:2014-04-05 23:28:17

标签: java andengine

我在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
  }
}

1 个答案:

答案 0 :(得分:1)

在Box2D中阅读传感器灯具。你想要你的硬币是一个传感器。来自Box2D手册:

  

有时游戏逻辑需要知道两个灯具何时重叠   应该没有碰撞反应。这是通过使用传感器完成的。一个   传感器是检测碰撞但不产生碰撞的夹具   响应。