在JS中进行全尺寸跳跃之前,角色将进行一次小跳跃

时间:2019-11-19 19:16:49

标签: javascript css game-physics game-development

我正在用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";
    }

1 个答案:

答案 0 :(得分:0)

这很可能是您的布尔值出现跳跃/掉落/ onSolidGround问题。很有可能该字符被以某种方式标记为

以外的其他字符
onSolidGround = true;
jumping = false;
falling = false;

发生第一次跳跃时。