我怎样才能让游戏在每次有人得分时停止一会儿,而不是匆忙回到游戏中?

How can I make the game stops for a while everytime someone scores, instead of rhush back to the game?

我正在开发一款游戏来练习我的技能。每当有人得分时,游戏就会很快重新开始,我希望在返回之前给它一点时间。主要功能如下所示:

function drawGame() {

    background(); //does the background
    
    drawChar();

    drawEnemy();

    drawBall();

    changeMovement();

    playerControls();

    enemyFollowsBall();

    enemyChangePosition();

    checkBallCollision();

    drawScore();

    //if(pointScored()) {
       //setInterval(drawGame, 1000);
//}

    setTimeout(drawGame, 1);
}

该函数通过管理游戏动画的 setTimeOut 不断调用。我试图用注释掉的代码解决我的问题(我将 pointScore() 设置为 return true,它会增加分数并进行一些重置),但它没有像我预期的那样工作。怎样才能达到预期的效果?

如果不将其移至 else 语句或在其后添加 return,您仍会调用 setTimeout(drawGame, 1);

function drawGame() {

  background(); //does the background

  drawChar();

  drawEnemy();

  drawBall();

  changeMovement();

  playerControls();

  enemyFollowsBall();

  enemyChangePosition();

  checkBallCollision();

  drawScore();

  if (pointScored()) {
    setInterval(drawGame, 5000);
    return; // either this
  } else { // or adding the else here
    setTimeout(drawGame, 1);
  }

}