我正在写一个游戏,我希望角色在按住空格键后跳跃,让他们的跳跃充电一点,然后充电将被添加到跳跃中。
然而,我目前使用的代码只有大约 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();
}
}