Как я могу замедлить SKSpriteNode, который запускает SKAction followPath для эффекта медленного движения с помощью Sprite Kit?

В основном я хочу, чтобы действие было запущено, а затем в середине действия создайте эффект медленного движения, а затем выпустите его из медленного движения. Есть ли у кого-нибудь хорошие отзывы о том, как это можно сделать? Я думал о создании действия вручную и с использованием метода обновления, но я чувствую, что это может быть излишним. Я надеялся на более простое решение.

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

Это код, который я использую для создания действия.

CGMutablePathRef cgpath = CGPathCreateMutable();
CGPathMoveToPoint(cgpath,NULL, mysprite.position.x, mysprite.position.y);
CGPathAddCurveToPoint(cgpath, NULL, cp1.x, cp1.y, cp2.x, cp2.y, e.x, e.y);
[mysprite runAction:[SKAction sequence:@[[SKAction followPath:cgpath asOffset:NO orientToPath:YES duration:3]]]];
CGPathRelease(cgpath);

Ответ 1

Каждый node имеет свойство speed:

Модификатор скорости применяется ко всем действиям, выполняемым node и его потомков.

Обсуждение
Значение по умолчанию - 1.0, что означает, что все действия выполняются на их нормальной скорости. Если вы устанавливаете другую скорость, время появляется бежать быстрее или медленнее для всех действий, выполняемых на node и его потомки. Например, если вы задаете значение скорости 2.0, выполняются действия в два раза быстрее.

Вы можете установить это значение меньше 1, чтобы сделать действие медленнее. Вы даже можете оживить скорость, чтобы постепенно замедляться:

[mySprite runAction:[SKAction speedTo:0.5 duration:1.0]];