清除间隔和暂停游戏

clearInterval and pausing a game

本文关键字:暂停 游戏 清除      更新时间:2023-09-26
  this.update = function() {
    if (state == "game") {
      if (jaws.pressed("p") && !jaws.paused) {
        jaws.paused = true;
        setTimeout(function() {
          var unpause_interval_id = setInterval(function() {
            if (jaws.pressed("p") && jaws.paused) {
              jaws.paused = false;
              clearInterval(unpause_interval_id);
            }
          });
        }, 5000);
      }

这是我尝试暂停我正在制作的游戏。基本上,当玩家暂停时,我将超时设置为 5 秒,用于检查玩家是否要取消暂停。

但是,我没有成功清除间隔,clearInterval 函数不起作用,我从我调试的内容中确定它。知道我做错了什么吗?

谢谢!

怎么样:

function p_unp()
{
   jaws.paused = !jaws.paused;
}
jaws.on_keypress("p", p_unp);

我建议删除setInterval函数。while loop改为:

  this.update = function() {
    if (state == "game") {
      if (jaws.pressed("p") && !jaws.paused) {
        jaws.paused = true;
        while (jaws.paused) {
            if (jaws.pressed("p") && jaws.paused) {
              jaws.paused = false;
            }
        }
    });
  }