1

所以我正在研究 HTML5 平台游戏的基础知识,因为我只是在学习它,所以我遇到了一些问题。我有一种跳跃的方法,但有时即使我有一个 if 语句会在每个滴答声中执行以查看对象是否在地面以下以及是否将其放回地面,但有时该对象会落在“地面”以下。

这是“游戏”:http ://www.freeminecrafthost.com/RealWorld/JDev/

我进入 chrome 调试器,当我将播放器放在“地面”下时,我暂停了执行,并且播放器函数中的 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;
}

The reason is that without specifying the this keyword, you create a new variable in scope every time which is never used. Also, it stops randomly since you test for this.isJumping to prevent the fall to continue but never reset this.y variable.

于 2013-02-23T05:12:51.270 回答