2014-04-05 79 views
0

我在Android应用程序中使用AndEngine和Box2d。
我该怎么做,以便当玩家和硬币相撞时,玩家不会碰到硬币,就好像它是一堵墙一样?- 引擎和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

在Box2D的阅读传感器灯具。你想让你的硬币成为传感器。从Box2D手册:

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