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。が157yposだとしましょう。5 ずつ減少し続けると、157 -> 152 -> 147 になり、条件をすぐに飛び越えます。これを修正するには、if ステートメントの条件を に変更するだけypos <= 150です。

于 2013-04-21T17:58:10.827 に答える