Как перемотать время SKEmitterNode? - PullRequest
0 голосов
/ 25 октября 2019

Я пытаюсь сделать так, чтобы частицы (реализованные с помощью SKEmitterNode ) соответствовали функции перемотки времени в игре. Как мне этого добиться?

Из документации видно, что доступ к отдельным частицам не является возможным решением, и единственное свойство, которое может быть полезным, это elementAction . Тем не менее, я до сих пор не представляю, как можно использовать одно действие для достижения этой цели.

Если это невозможно, я предполагаю, что реализация более простой версии анимации с нуля для игры будет необходима,Любые предложения по этому вопросу также будут с благодарностью.

1 Ответ

0 голосов
/ 28 октября 2019

Это ужасно, но вы можете сделать что-то вроде этого:

let time = 5
let action = SKAction.customAction(withDuration:time){
                 node,elapsedTime in 
                 guard let emitter = node as SKEmitterNode else {return}
                 emitter.resetSimulation()
                 emitter.advanceSimulationTime(time - elapsedTime)

             }
...