Как заставить SKSpriteNode следовать по одному и тому же пути туда и обратно?

Мой код разделен на множество файлов, поэтому я надеюсь, что смогу легко это описать. У меня есть CGMutablePath(), который идет из точки A в точку B. Я помещаю SKSpriteNode в точку A и выполняю:

yourline0 = SKShapeNode()
pathToDraw0.move(to: cgPoints[0])
pathToDraw0.addQuadCurve(to: cgPoints[1], control: cgPoints[2])

yourline0.lineWidth = 0
yourline0.path = pathToDraw0
yourline0.strokeColor = .clear

iconPath0 = pathToDraw0

SKAction.follow(iconPath0, asOffset: false, orientToPath: false, duration: 1))

Я выполняю этот SKACtion, и, как я и ожидал, мой SKNode перемещается из точки A в точку B. Отлично.

Я не уверен, как это изменить, я предположил из докса, что вызов того же самого SKAction, как есть, заставит SKNode перейти из точки B в A.


person LuisC329    schedule 24.02.2021    source источник


Ответы (1)


Существует метод reversed(), который вы можете использовать.

Ниже я дал вашему действию название youraction

            let youraction = SKAction.follow(iconPath0, asOffset: false, orientToPath: false, duration: 1)
            let reverseaction = SKAction.reversed(youraction)
            yourspritenode.run(reverseaction)
            

Кроме того, вы можете просто использовать reversed после имени действия, чтобы запустить его в обратном порядке:

            yourspritenode.run(youraction.reversed())
person JohnL    schedule 24.02.2021