如何仅触发一次增量

时间:2018-08-31 10:54:28

标签: javascript

我使用了setTimeout函数,因此我的对象在y<0上停留了一段时间,当时我想让增量仅触发一次,但它会继续触发...更多我延迟我的函数使用setTimeout函数的次数更高,则增量操作会被触发……因此,无论我的对象在y<0中停留多长时间,增量触发仅触发一次的解决方案是什么? >

Player.prototype.checkInWater = function () {
     if (this.y < 0) {
       ++scoreGot
       setTimeout(function(){  
         player.x = 202;
         nplayer.y = 405;
       }, 300);
    }
};

1 个答案:

答案 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);
    }
};