1

私は HTML5 のプラットフォーマーの基本に取り組んでいます。ちょうどそれを学んでいるので、いくつか問題があります。ジャンプする方法はありますが、オブジェクトが地面の下にあるかどうかを確認するためにティックごとに実行される if ステートメントがある場合でも、オブジェクトが「地面」の下に落ちることがあります。

ここに「ゲーム」があります: http://www.freeminecrafthost.com/RealWorld/JDev/

私はクロムデバッガーに入り、プレーヤーを「地面」の下に置いたときに実行を一時停止し、y はプレーヤー関数で 440 に等しくなりました。しかし、ペイント機能ではそうではありませんでした

何か案は?

問題のコードは次のとおりです。

this.move = function(){
        if(this.isJumping){
            this.y -= jumprate;
            jumprate--;
        }
        if (this.y>440){
            this.isJumping = false;
            y = 440;
        }
    }
4

1 に答える 1

2

これ

if (this.y>440){
   this.isJumping = false;
   y = 440;
}

する必要があります

if (this.y>440){
   this.isJumping = false;
   this.y = 440;
}

その理由は、thisキーワードを指定しないと、スコープ内に毎回使用されない新しい変数を作成するためです。this.isJumpingまた、落下が継続するのを防ぐためのテストを行っているため、ランダムに停止しますが、this.y変数をリセットすることはありません。

于 2013-02-23T05:12:51.270 に答える