2017-01-16 2 views
0

Wie kann ich einen Countdown-Timer, dass, wenn es 0 trifft, wird meine Szene laufen x Aktionen? Wie würde ich dann den Timer zurücksetzen, um den gesamten Prozess zu wiederholen?Countdown-Timer wiederholen?

EX: Timer startet bei 5 Sekunden, wenn Szene Lasten. Timer zählt bis 0 nach unten und dann eine Aktion in meiner Szene laufen. Nach Abschluss der Aktion, setzt Timer zurück zum 5.

+0

Timer, der nach 5 Sekunden auslöst, ist ziemlich einfach; Was ist der schwierige Teil für dich? – matt

+0

Reine Code-Writing-Anfragen sind off-topic auf Stack Overflow - wir erwarten, dass sich Fragen hier auf * spezifische * Programmierprobleme beziehen - aber wir helfen Ihnen gerne, es selbst zu schreiben! Sagen Sie uns, was Sie versucht haben (http://stackoverflow.com/help/how-to-ask) und wo Sie stecken bleiben. Dies wird uns auch helfen, Ihre Frage besser zu beantworten. –

Antwort

1

Etwas wie folgt aus:

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

Mit 'SCNAction' mit SceneKit Stil im Einklang viel mehr ist ein' Timer' als verwenden. –

+0

@GregRobertson Während ich zuerst darüber nachdenke, sobald der Timer Null erreicht, wird eine von vier Aktionen auftreten; Daher kann es nicht im Knoten selbst sein, sondern im aktuellen Knoten. –

0

Sie Timer Klasse verwenden, können die Selbst wiederholte Timer mit allen möglichen nächsten Aktionen zu erstellen. Wie ich es verstehe, verwenden Sie swift3.

-Code ist unten:

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

Wenn Sie ausführlichere Informationen über den Timer Nutzung benötigen, sehen Sie die apple documentation.