javascript - 如何只触发一次增量

标签 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);
    }
};

最佳答案

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

关于javascript - 如何只触发一次增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52113928/

相关文章:

javascript - Reactjs 设计与昂贵的 API 调用

java - 如何在静态web项目中更改Intellij运行端口?

javascript - LocalStorage 设置数组内的对象 Ionic List

javascript - 防止外部页面重定向我的(父)页面

javascript - 无法将坐标精确到 Canvas

javascript - 带有 Webpack 的 sass-loader 不会生成 CSS

javascript - 减少 Highcharts 中的 x 轴标签密度

javascript - 使用 jquery 设置自定义属性和值

javascript - Jquery 隐藏/显示加载更多按钮

javascript - jquery 为什么.text 自动隐藏