我怎样才能让游戏在每次有人得分时停止一会儿,而不是匆忙回到游戏中?
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);
}
}
我正在开发一款游戏来练习我的技能。每当有人得分时,游戏就会很快重新开始,我希望在返回之前给它一点时间。主要功能如下所示:
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);
}
}