HTML5全局变量在两个地方不同

时间:2013-02-23 05:06:52

标签: javascript html5 canvas

所以我正在研究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;
        }
    }

1 个答案:

答案 0 :(得分: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变量。