我使用了setTimeout
函数,因此我的对象在y<0
上停留了一段时间,当时我想让增量仅触发一次,但它会继续触发...更多我延迟我的函数使用setTimeout
函数的次数更高,则增量操作会被触发……因此,无论我的对象在y<0
中停留多长时间,增量触发仅触发一次的解决方案是什么? >
Player.prototype.checkInWater = function () {
if (this.y < 0) {
++scoreGot
setTimeout(function(){
player.x = 202;
nplayer.y = 405;
}, 300);
}
};
答案 0 :(得分:1)
Player = function(){
....
this.checkedInWater = false;
}
Player.prototype.checkInWater = function () {
if (this.y < 0 && !this.checkedInWater) {
++scoreGot;
t = this;
t.checkedInWater = true;
setTimeout(function(){
player.x = 202;
nplayer.y = 405;
t.checkedInWater = false;
}, 300);
}
};