触摸JS后角色不会跳

时间:2019-11-18 20:42:09

标签: javascript collision-detection game-development

我正在用JS为平台游戏编写碰撞检测程序。由于某些原因,当我的角色触及顶部的地面时,它不会再次跳跃。这是我的代码:

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' && (moveY <= 300)) { 
            moveY += 1;
            move (moveX, moveY);
            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 :(得分:1)

我的问题有点愚蠢。在检查了输入代码之后,我意识到并没有发生跳转,因为它只会在我设置要测试的“平台”上跳转,而实际上并没有在平台上跳转。这是经过改进的代码:

if (event.code == 'KeyW' && (onSolidGround == true)) { 
            moveY += 1;
            move (moveX, moveY);
            momentumY = momentumY + 20;
            onSolidGround = false;
            falling = false;
            jumping = true;
        }