Как ждать, пока SKAction.repeatForever завершит последовательность анимации в SpriteKit? - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть анимация, запускаемая с SKAction.repeatForever циклом анимации, который запускает анимацию снова и снова на неопределенное время.

node.run(SKAction.repeatForever(
    SKAction.animate(with: animationFrames,
                     timePerFrame: timePerFrame,
                     resize: true,
                     restore: true)))

У меня есть анимация, запускаемая пользователем (с прикосновением), котораяЯ хочу запустить после , когда текущий анимированный цикл завершается.Как я могу поймать, когда текущий цикл SKAction.animate завершается, а затем останавливается, удаляет и заменяет анимацию второй?

|--Loop1--|--Loop2--|--Loop3--|--...
                | user trigger here
                    | wait until Loop2 finishes and then replace the animation

Псевдокод того, какую функциональность я ищу:

... somewhere else ... {
    animatedNode.run(SKAction.repeatForever(SKAction.animate(...)))
}

func onTouch() {
    foreverRunningAnimation.waitUntilLoopFinishes() {
        animatedNode.removeAllActions()
        animatedNode.run(SKAction.repeatForever(SKAction.animate(< second animation>)))
    }
}
...