Как я могу перемещать CCNode по дуге с линейной скоростью анимации?

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

Я пытаюсь найти правильную реализацию для запуска действия с CCActionBezierBy ( ссылка), который не будет иметь скорость легкости вообще.

CGFloat duration = 5;
// bezierConfig is already set
CGFloat rate = 0.0f;
id action = [CCActionBezierBy actionWithDuration:duration bezier:bezierConfig];
id ease = [CCActionEaseRate actionWithAction:action rate:rate];
id spawn = [CCActionSpawn actions:action, ease, nil];

Когда я манипулирую скоростью, я вижу результаты, где 0 - анимация с наименьшей легкостью. Но как я могу сделать анимацию полностью линейной?

1 ответ

Поместите движущийся узел в родительский узел. Его координаты от родительского корня будут двигаться радиусом. Тогда сделайте 2 действия вращения. Одно вращение родителя с постоянной скоростью. И вращение самого узла в противоположном направлении.

Другие вопросы по тегам