Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角色将在JS中进行全尺寸跳转之前进行一次小跳转_Javascript_Css_Game Physics_Game Development - Fatal编程技术网

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

Javascript 角色将在JS中进行全尺寸跳转之前进行一次小跳转,javascript,css,game-physics,game-development,Javascript,Css,Game Physics,Game Development,我正在用JavaScript构建一个平台游戏。 出于某种原因,当我的角色降落在平台上时,角色将开始交替进行非常小的跳跃,然后进行全尺寸的跳跃。我希望它每次都能跳一个全尺寸。为什么这不起作用? 这是我的密码: if (isCollideY(platforms[i].getBoundingClientRect(), document.getElementById('spriteNotReal').getBoundingClientRect()) == true) {

我正在用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;
                        }
            }
else if(onSolidGround==false){
如果(动量<0){
下降=正确;
}
否则如果(动量>0){
跳跃=正确;
}
否则{
跳跃=错误;
}
moveX+=动量x/3+1;
document.getElementById(“spritentreal”).src=“jumpmain.gif”;
}

这很可能是因为你的布尔人在跳/摔/实心球时出现的问题。最有可能的是,该角色不知何故被标记为除

onSolidGround = true;
jumping = false;
falling = false;

当第一次跳转发生时。

我如何防止这种情况发生?为每种存在状态以及该状态下的值设置案例。根据每个布尔值应该是什么来设置它。重新考虑每一种状态的转换是什么,以及它是否有意义。
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";
    }
onSolidGround = true;
jumping = false;
falling = false;