0

我正在写一个游戏,我希望角色在按住空格键后跳跃,让他们的跳跃充电一点,然后充电将被添加到跳跃中。

然而,我目前使用的代码只有大约 50% 的时间可以工作,并且如果玩家同时按住方向移动按钮,则几乎无限期地无法工作。

    function greenTimerHandler(e:TimerEvent){
        if(spacePressed&&downBumping){
        charge += 3;
           if(charge >= 50){
              charge = 50;
           }
        } else if(!spacePressed&& downBumping) {
           greenSlimeJump(charge);
           greenSlimeTimer.stop();
        }
     }

     //And the jump function
     function greenSlimeJump(greenCharge){
         ySpeed = greenCharge * -1.5
         slimeAmt -= Math.floor(greenCharge * 0.25);
         charge = 0;
     }

downBumping 只是基于玩家底部的 hitTestPoint 的布尔碰撞值...

有什么办法可以使它实际上比现在更多地运行跳转功能?它甚至会在下一次尝试跳转时保留电荷值,并且永远不会减去 slimeAmt 值,因为代码似乎完全跳过了绿色跳转功能。

下面是 downBumping 代码:

if(back.collisions.hitTestPoint(player.x + downBumpPoint.x, player.y +  
downBumpPoint.y, true)){
       downBumping = true;
} else { 
       downBumping = false; 
}

这是按下的计时器/空间:

if(e.keyCode == 32 && slimeAction){
      spacePressed = true;
      if(slimeType == 1 && downBumping){
            greenSlimeTimer.start(); 
      }
}
4

0 回答 0