Я пытаюсь запустить набор SKActions в цикле "for", как показано в коде ниже.Последовательность должна выполняться следующим образом:
Для 1-го суперНода ...
- Запустить открытие действий на всех дочерних подузлах одновременно;КОГДА СДЕЛАНО ...
- Запускайте variableDurationActions для всех дочерних узлов spriteNodes одновременно;КОГДА СДЕЛАНО ...
- Одновременно запускается закрывающее действие на всех дочерних подузлах И В ТО ЖЕ ВРЕМЯ ...
Для второго суперузла ...
Одновременно запустить открытие действия на всех дочерних подузлах;КОГДА СДЕЛАНО ...
И этот трехэтапный процесс повторяется для каждого супер-узла.
Первая проблема заключается в том, что, хотя я мог бы написать закрытие, чтобы дождаться завершения одного действияпрежде чем начинать другое, я не знаю, как это сделать для нескольких одновременных действий через циклы «for».Эта проблема возникает между шагами 1 и 2 и шагами 2 и 3. Между 2 и 3 это еще хуже, потому что продолжительность действий на шаге 2 может сильно различаться.
Вторая проблема заключается в том, что я надеваюне знаю, как написать обработчик завершения или какой-то эквивалент, чтобы закрытие выполнялось и следующая итерация открывающая операция выполнялась одновременно, но до переменной DurationActions на следующей итерации.
То, что я пытаюсь сделать, даже возможнос инструментами SpriteKit?Или я должен вместо этого использовать группы рассылки?Я ищу элегантные решения, потому что мой код достаточно сложен, как он есть.
for superNode in scene.children {
for subNode in superNode.children {
// All openingActions should run first
subNode.run(openingAction)
for spriteNode in subNode.children {
// These variableDurationActions should run concurrently, second
spriteNode.run(variableDurationAction)
}
// All closingActions should run third AND
// concurrently with the openingActions in the next iteration
subNode.run(closingAction)
}
}