【问题标题】:How to prevent a function from running more than once? - Javascript如何防止函数多次运行? - Javascript
【发布时间】:2018-08-28 21:33:46
【问题描述】:

我在Javascript上做了一个游戏,当你碰到障碍物时,游戏提示消息并刷新窗口,问题是当你输了时,提示消息弹出这么多次,我该如何限制次数弹出警报?

代码如下:

if (pipes[i].hits(bird)) {
      // console.log("HIT");
      pipes[i].color = "#F00";
      alert("YOU LOST");
      window.location.reload();
}

其中“pipes[i]”是障碍物,“bird”是角色,“hits(bird)”是检查碰撞的函数。这里的重点是“alert()”运行了 10 次,我该如何停止它?

提前致谢^_^。

Ps:有没有办法在没有 Jquery 的情况下做到这一点?对于简单的项目,我更喜欢纯 Javascript。

【问题讨论】:

  • 当您执行window.location.reload(true); 时会发生什么?那应该做一个硬重新加载清除缓存。我的另一个想法是这是在某种循环中运行吗?如果是这样,也许在这个 if 语句完成之后,需要某种中断;退出并停止点击条件。
  • 我看到if 语句在循环中?我说的对吗?
  • 是的@Carson,它在一个for循环中,而且for循环在一个调用自身(递归)的函数中!!!我会检查一下,谢谢!

标签: javascript


【解决方案1】:

我以前也有这个问题,管道[i].hitsBird();函数运行多次,因为您多次检查,并且多次检查为真,这会打印您多次丢失,我同意中断;在代码之后,是解决此类问题的最佳方法,如果仍然存在,您可能会在同一个循环中检查多次。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 2014-05-31
    • 1970-01-01
    • 2014-04-19
    • 1970-01-01
    • 2011-04-12
    • 2012-11-29
    相关资源
    最近更新 更多