Javascript 角色将在JS中进行全尺寸跳转之前进行一次小跳转
我正在用JavaScript构建一个平台游戏。 出于某种原因,当我的角色降落在平台上时,角色将开始交替进行非常小的跳跃,然后进行全尺寸的跳跃。我希望它每次都能跳一个全尺寸。为什么这不起作用? 这是我的密码: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) {
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;