1

我正在尝试用 javascript 组合一个简单的游戏,但我无法让跳跃工作:

function jump()
 {
     isJumping=true;

    var jumpint= setInterval(function() {
    ypos=ypos-5;
    }, 10);
    if(ypos==150)
    {
        isJumping == false;
        clearInterval(jumpint);
        jumpint = 0;
        alert("it works");
        return;

    }

 }

每当我调用此函数时,它都会提供动画,并且角色会朝正确的方向移动,但不会停止。一旦 ypos 等于 150,它就会继续移动并且不执行 if 语句,我不知道为什么。很明显,我会在里面做一些方程式,但我想在继续之前让这个跳跃执行。

4

1 回答 1

2

将 if 语句放在setInterval,否则只会执行一次。

var jumpint = setInterval(function() {
    ypos=ypos-5;
    if(ypos==150)
    {
        isJumping == false;
        clearInterval(jumpint);
        alert("it works");
    }
}, 10);

此外,您可能希望将条件更改为ypos <= 150. 假设ypos是 157。如果你继续减少 5,它将变为 157 -> 152 -> 147 并跳过条件。要修复它,只需将 if 语句的条件更改为ypos <= 150.

于 2013-04-21T17:58:10.827 回答