我在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
}
}
答案 0 :(得分:1)
在Box2D中阅读传感器灯具。你想要你的硬币是一个传感器。来自Box2D手册:
有时游戏逻辑需要知道两个灯具何时重叠 应该没有碰撞反应。这是通过使用传感器完成的。一个 传感器是检测碰撞但不产生碰撞的夹具 响应。