2017-01-16 2 views
0

Comment est-ce que je peux faire un compte à rebours en ce que quand il frappe 0, ma scène exécutera x actions? Puis, comment réinitialiser le chronomètre pour répéter l'ensemble du processus? EX: la minuterie démarre à 5 secondes lorsque la scène est chargée. La minuterie compte jusqu'à 0 et une action se déroule dans ma scène. À la fin de l'action, remet à zéro la minuterie de retour à 5.La minuterie de compte à rebours se répète?

+0

La minuterie qui se déclenche après 5 secondes est assez simple; Quelle est la partie difficile pour vous? – matt

+0

Les demandes d'écriture de code pure sont hors-sujet sur Stack Overflow - nous nous attendons à ce que les questions se rapportent à des problèmes de programmation * spécifiques * - mais nous vous aiderons volontiers à l'écrire vous-même! Dites-nous [ce que vous avez essayé] (http://stackoverflow.com/help/how-to-ask), et où vous êtes coincé. Cela nous aidera également à mieux répondre à votre question. –

Répondre

1

Quelque chose comme ceci:

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

L'utilisation de 'SCNAction' est beaucoup plus en phase avec le style de SceneKit qu'avec un' Timer'. –

+0

@GregRobertson Alors que je pensais à cela au début, une fois que le minuteur atteint zéro, une des quatre actions se produira; par conséquent, il ne peut pas être dans le nœud lui-même mais le nœud réel. –

0

Vous pouvez utiliser minuterie classe pour créer le retardateur répété avec les actions suivantes. Si je comprends bien, vous utilisez swift3.

code

est ci-dessous:

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

Si vous avez besoin d'informations plus détaillées sur l'utilisation de la minuterie, regardez la apple documentation.