2017-01-16 206 views
0

我該如何製作一個倒數計時器,當它達到0時,我的場景會運行x個動作?那麼,我將如何重置計時器來重複整個過程?倒數計時器重複?

EX:當場景加載時,定時器從5秒開始。定時器倒數到0,然後一個動作將在我的場景中運行。在動作完成後,計時器重置回5

+0

5秒後觸發的計時器非常簡單;你最難的部分是什麼? – matt

+0

純粹的代碼寫入請求在Stack Overflow上是無關緊要的 - 我們期望這裏的問題與*特定的*編程問題有關 - 但我們會很樂意幫助您自己編寫代碼!告訴我們[你試過的東西](http://stackoverflow.com/help/how-to-ask),以及你卡在哪裏。這也將幫助我們更好地回答你的問題。 –

回答

1

事情是這樣的:

let waitAction: SCNAction = SCNAction.wait(duration: 5.0) 
let thisAction = SCNAction(some sort of action) 
let sequenceAction = SCNAction.sequence([waitAction, thisAction]) 
let repeatAction = SCNAction.repeatForever(sequenceAction, duration: 5.0)) 

theNode.runAction(repeatAction) 
+0

使用'SCNAction'比SceneKit的風格更適合使用'Timer'。 –

+0

@GregRobertson雖然我一開始就想到了這一點,但一旦計時器達到零,四個動作中的一個就會發生;因此,它不能在節點本身中,而是在實際節點中。 –

0

您可以使用定時器類與任何下一步行動創造自我重複計時器。據我所知,你使用swift3。

代碼如下:

Timer.init(timeInterval: 5.0, repeats: true, block: { (timer) in 
     print("Scene runned") 
}).fire() 

如果您需要了解定時器使用的更多詳細信息,看apple documentation