在 JavaScript Memory Aid 游戏中设置一分钟计时器
setting a one minute timer in JavaScript memory aid game
<div id="counter">1:00</div>
function countdown() {
var secs = 60;
function tick() {
var counter = document.getElementById("counter");
secs--;
counter.innerHTML = "0:" + (secs < 10 ? "0" : "") + String(secs);
if( secs > 0 ) {
setTimeout(tick, 1000);
} else {
alert("Game Over");
}
}
tick();
}
countdown(60);
我对游戏的这一部分有问题。我正在尝试为游戏设置一个 60 秒计时器,该计时器从 60 开始,以 0 结束,当它达到 0 时,游戏停止并且警报显示游戏已结束。
我对编程很陌生,所以请给我尽可能多的反馈。我在互联网上找到了这段代码,我想出了大部分,你能告诉我 tick() 函数在这里做什么吗?
这里有一种方法可以做到这一点:
首先声明一个你将用于间隔的变量(应该是"全局",附加到窗口):
var countDownInterval = null;
然后,一个触发滴答间隔的函数,你应该在游戏准备开始时调用它:
function startCountDown()
{
countDownInterval = setInterval(tick,1000); //sets an interval with a pointer to the tick function, called every 1000ms
}
它将每秒调用 tick 函数:
function tick()
{
// Check to see if the counter has been initialized
if ( typeof countDownInterval.counter == 'undefined' )
{
// It has not... perform the initialization
countDownInterval.counter = 0; //or 60 and countdown to 0
}
else
{
countDownInterval.counter++; //or --
}
console.log(countDownInterval.counter); //You can always check out your count @ the log console.
//Update your html/css/images/anything you need to do, e.g. show the count.
if(60<= countDownInterval.counter) //if limit has been reached
{
stopGame(); //function which will clear the interval and do whatever else you need to do.
}
}
然后是游戏结束后您可以执行所有需要执行的操作的功能:
function stopGame()
{
clearInterval(countDownInterval);//Stops the interval
//Then do anything else you want to do, call game over functions, etc.
}
您可以随时致电startCountDown();
启动计数器
tick 的伪代码:
function tick() {
reduce counter variable;
if counter > 0
wait for 1 second; (This is what setTimeout(tick, 1000) means)
call tick() again (recursively)
}
else {
game over
}
}
像这样的东西?
var countdown = function(sec, tick, done) {
var interval = setInterval(function(){
if(sec <= 0) {
clearInterval(interval);
done();
} else {
tick(sec)
sec--;
}
}, 1000)
}
countdown(10, console.log, function(){console.log('done')})
相关文章:
- 计时器在使用 jQuery 一分钟后没有触发,或者每 1 分钟后给出一些其他解决方案来触发功能
- 使用第 n 个类型设置一组八个元素的样式
- 使用 JavaScript 给 hh:mm 添加一分钟
- 仅在数据库中设置一次内容
- 设置饼干并在一分钟内过期
- 在 JavaScript Memory Aid 游戏中设置一分钟计时器
- 如何替换事件页面扩展中的短(不到一分钟)setTimeouts
- 带有cookie的JavaScript倒计时计时器在一分钟后停止
- 如何使用值设置一组复选框
- 只设置一次Module属性
- c.beginPath不是函数??那是一分钟前的事了
- 在mongodb的日期字段中添加一分钟
- 如何限制元素在一分钟内被点击的次数?
- 添加一分钟的时间对象
- 如何延迟JavaScript JSON流一分钟
- 代码建议-使用$.each()设置一种使用表
- 获得数学.四舍五入到下一分钟,即使超过一秒
- BigDecimal:如何设置一次刻度
- 一个javascript,可以显示不同的图像,每一分钟的一天
- 如何在javascript中设置一分钟计数器