我正在用JavaScript构建一个平台游戏。出于某种原因,当我的角色降落在平台上时,角色将开始交替进行非常小的跳跃,然后进行全尺寸跳跃。我希望它每次都能做一个全尺寸的跳跃。为什么不起作用?这是我的代码:
if (isCollideY(platforms[i].getBoundingClientRect(), document.getElementById('spriteNotReal').getBoundingClientRect()) == true) {
if (falling == true && (jumping == false)) {
moveY = platforms[i].getBoundingClientRect().y + 3;
momentumY = 0;
onSolidGround = true;
}
}
if (event.code == 'KeyW' && (onSolidGround == true)) {
momentumY = momentumY + 20;
onSolidGround = false;
falling = false;
jumping = true;
}
else if (onSolidGround == false) {
if (momentumY < 0) {
falling = true;
}
else if (momentumY > 0) {
jumping = true;
}
else {
jumping = false;
}
moveX += momentumX / 3 + 1;
document.getElementById("spriteNotReal").src = "jumpmain.gif";
}
这很可能是你在SolidGround上跳跃/摔倒时的布尔值出现问题。最有可能的是,该角色以某种方式被标记为之外的其他东西
onSolidGround = true;
jumping = false;
falling = false;
当第一次跳跃时。