Javascript / jQuery / etc中的方法,用于测量经过一段时间后经过的时间/触发事件

我正在尝试使用HTML5(Javascript)制作一个简单的游戏。 我想把时间限制在事件上。 例如,当玩家进入屋顶正在关闭的房间时,我想给他们一些秒钟来做出决定,然后自动发生其他事件。 但是,如果他们做出决定,我根本不想要定时function。

我怎样才能完成这样的事情?

为此,我喜欢使用自定义Timer类

  var Timer = function(callback, delay, autoRun){ this.running = (autoRun == undefined)?true:autoRun; this.completed = false; this.delay = delay; this.callback = callback; }; Timer.prototype.pause = function() { this.running = false; return this; }; Timer.prototype.resume = function() { this.running = true; return this; }; Timer.prototype.finish = function(){ this.running = false; this.completed = true; this.callback(); return this; }; 

您只需创建一个新的计时器,将其添加到计时器列表中,这些计时器将使用主绘制循环以固定的数量更新(20ms是好的)。 因此,如果您的游戏滞后,用户不会受到惩罚;)

例如:var listOfTimers = [];

 function draw(){ //Called every frame for(var i = 0; i