充电定时器不是很有效?

时间:2013-09-07 00:13:02

标签: actionscript-3 timer

我正在编写一个游戏,我希望角色在按住空格键后向其跳跃一段时间后跳跃,然后将电荷添加到跳跃中。

然而,我目前所拥有的代码只能在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(); 
      }
}

0 个答案:

没有答案