2017-01-16 15 views
0

Как я могу сделать таймер обратного отсчета, когда он достигнет 0, моя сцена будет запускать x действий? Затем, как бы сбросить таймер назад, чтобы повторить весь процесс?Повторить таймер обратного отсчета?

EX: таймер запускается через 5 секунд при загрузке сцены. Таймер отсчитывает до 0, а затем действие будет выполняться в моей сцене. После завершения действия, таймер сбрасывается обратно 5.

+0

Таймер, срабатывающий через 5 секунд, довольно прост; что для тебя тяжелая? – matt

+0

Чистые запросы для написания кода не относятся к теме при переполнении стека - мы ожидаем, что вопросы здесь будут касаться * конкретных проблем программирования, но мы с радостью поможем вам сами написать! Скажите нам [что вы пробовали] (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, чем использованию таймера. –

+0

@GregRobertson Пока я думал об этом сначала, как только таймер достигнет нуля, произойдет одно из четырех действий; поэтому он не может быть в самом узле, кроме фактического узла. –

0

Вы можете использовать TIMER класса для создания собственной повторяемой таймеры с любыми последующими действиями. Насколько я понимаю, вы используете swift3.

код ниже:

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

Если вы хотите получить более подробную информацию об использовании таймера, смотрите на apple documentation.