2013-10-16 43 views
0

我正在通过andengine开发游戏。我希望我的球员只能跳一次。所以我使用联系人列表。但它并不总是工作。大多数工作,但并不总是。检查代码并告诉我我的错误。单跳功能

我有播放器object.and十个box2d静态对象。我不明白这个联系侦听器如何检测播放器和这些盒子之间的碰撞。因为我也有其他的盒子,例如:玩家,方形和圆形。为什么这个接触者听众在玩家和广场之间检测?为什么不在圆形和方形之间?

private ContactListener contactListener() 
    { 
     ContactListener contactListener = new ContactListener() 
     { 
      @Override 
      public void beginContact(Contact contact) 
      { 
       player.setJumping(false); 
      } 

      @Override 
      public void endContact(Contact contact) 
      { 
       player.setJumping(true); 

      } 
     }; 
     return contactListener; 
    } 
+0

从联系人,你可以得到两个夹具那相撞。然后你可以检查他们是哪个装置。 – iforce2d

+0

相信我这个代码检查玩家和其他人之间的关系。可以这样吗? – immyth

+0

您发布的代码根本不检查任何内容。例如,在beginContact函数中,你应该在调用player.setJumping之前检查其中一个灯具是否是玩家,对不对?否则,即使其他事物开始触及,玩家状态也会改变。 – iforce2d

回答

0

我想你想的碰撞机构从非碰撞bodies.This link分开帮助你