0
我想使用HTML5(Javascript)做一個簡單的遊戲。我想把時間限制在事件上。例如,當一個玩家進入一個屋頂關閉的房間時,我想給他們幾秒鐘的時間做出決定,然後自動發生其他事件。但是,如果他們做出決定,我不想讓定時功能開火。JavaScript/jQuery /等方法來衡量時間過去/觸發事件後的時間
我該如何做到這樣?
我想使用HTML5(Javascript)做一個簡單的遊戲。我想把時間限制在事件上。例如,當一個玩家進入一個屋頂關閉的房間時,我想給他們幾秒鐘的時間做出決定,然後自動發生其他事件。但是,如果他們做出決定,我不想讓定時功能開火。JavaScript/jQuery /等方法來衡量時間過去/觸發事件後的時間
我該如何做到這樣?
對於這一點,我喜歡用一個自定義的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<listOfTimers.length; i++){
if(listOfTimers[i].running){
listOfTimers[i].delay -= 20;
if(listOfTimers[i].delay <= 0){
listOfTimers[i].finish();
}
}
//The rest of your draw logic...
}
查看'setTimeout'和'clearTimeout'作爲起點。 :-) –
您需要'setTimeout()' – 2014-01-09 22:26:15
您可能正在使用requestAnimationFrame,因此請使用充當Timer的類。 –