2014-10-11 90 views
1

我有一個JavaScript文件,我正在使用Phaser Framework進行遊戲,而且我有多個計時器,唯一的事情是我不確定如何讓其中一個定時器在第一個定時器啓動後開始運行一點點。由於框架JS文件,我無法提供實際可用的代碼,但我可以提供我正在使用的代碼。如何在JavaScript中延遲計時器的啓動時間(Phaser)

//This is my first timer, it works how I like 
timer1 = game.time.events.loop(1500, addAnimals, this); 
//I want this one to start a little bit later than the other one 
timer2 = game.time.events.loop(1500, increaseScore, this); 

我不知道我該如何解決這個問題,如果任何人都可以幫助我,那太棒了!

回答

2

我已經想通了,我決定運行只運行一次的計時器,調用一個函數,然後運行,像這樣:

firstTimer= game.time.events.add(Phaser.Timer.SECOND * 3.85, firstRun, this); 

與第一運轉功能:

function firstRun() { 
score += 1; 
scoreLabel.text = score; 
timer2 = game.time.events.loop(1500, increaseScore, this); 
} 

它運行它自己的計時器。

-1

我不熟的移相器框架,但在JavaScript中,你可以使用的setTimeout(函數,延遲)

window.setTimeout(function() { 
 
    timer2 = game.time.events.loop(1500, increaseScore, this); 
 
}, 1000);

對於1000爲一秒。

+1

是的,它是如何在JavaScript中工作的,但問題與Phaser相關,這是一個JavaScript框架。 – Geroy290 2014-10-11 22:35:49

+1

我知道這是舊的,但對於未來的尋求者,在Phaser中不使用本機setTimeout的原因是Phaser的計時器與其遊戲循環有關,例如,如果暫停遊戲,它會自動暫停所有計時器。 – 2017-08-24 15:28:30