如何阻止玩家在空中跳两次?

时间:2018-07-26 19:27:06

标签: java controller libgdx box2d

我的播放器在我不需要的时候跳了两次。这是来自播放类的代码,当用户按下空格键时,播放器会跳转,但在再次按下空格键时会在空中跳跃一次,我试图检查播放器是否在地面上并给出不管玩家是否在地面上都为假值,因此玩家不会使用此代码跳动

当我删除第二条if语句时,播放器在空中跳一次,再按一次则从空中跳出。

这是我的mycontactListener类,用于检查玩家是否在地面上。由于某种原因,它不计算玩家在地面上的numFootContacts。

如何阻止玩家跳跃两次或在空中跳跃?

1 个答案:

答案 0 :(得分:1)

最好检查y速度值是否为0。实际上,只有在不跳跃或摔倒的情况下,您才可以跳跃,我的意思是只有在站立时才可以跳跃。

代码如下:

if(MyInput.isPressed(MyInput.SPACE) &&
    player.getBody().getLinearVelocity().y==0)
    player.getBody().applyForceToCenter(0, 150, true);