所以我要做的是在游戏中停留一段时间后停止一个功能。我有一个基本功能,可以增加游戏中的分数。
function increaseScore() {
score = score + 1; // increase score
display_score.innerHTML = "score is " + score; // prints new score
}
我在游戏中多次使用此代码,例如两个圆圈。 红圈......
if(red_circle == 0) {//stop the incrementing the clicker
increaseScore();
red_circle = 1;}
和 绿圈.....
if(green_circle == 0) {//stop the incrementing the clicker
increaseScore();
green_circle = 1;}
我要做的是停止这个增加功能,在两个圆圈上的一定秒数后增加分数。我在4秒后得分后尝试了setTimeout以下增量
if(red_circle == 0) {//stop the incrementing the clicker
setTimeout(function() { increaseScore();
red_circle = 1;
}, 4000);
}
和clearTimeout不允许分数增加
if(green_circle == 0) {//stop the incrementing the clicker
clearTimeout(function() { increaseScore();
green_circle = 1;
}, 3000);
}
和setInterval()。我的思维过程是错误的吗?提前谢谢
答案 0 :(得分:1)
如果函数在循环中运行,它可以在循环内部检查它运行了多长时间,如果循环运行的时间太长则会中断循环。如果从外部循环调用该函数,则调用代码可以执行相同的检查。调用者可以记住它开始调用函数的时间并与当前时间进行比较。
var timeStarted = new Date();
// in the loop:
var currentTime = new Date();
if ((currentTime - timeStarted) < 4 * 1000)
{
// call the function
}
答案 1 :(得分:0)