所以我正在研究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;
}
}
答案 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
变量。