触摸JS后字符不会跳动

问题描述 投票:0回答:1

我正在使用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";
    }
javascript collision-detection game-development
1个回答
0
投票

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

if (event.code == 'KeyW' && (onSolidGround == true)) { 
            moveY += 1;
            move (moveX, moveY);
            momentumY = momentumY + 20;
            onSolidGround = false;
            falling = false;
            jumping = true;
        }
© www.soinside.com 2019 - 2024. All rights reserved.