2017-01-16 180 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