Как я могу перемещать 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 действия вращения. Одно вращение родителя с постоянной скоростью. И вращение самого узла в противоположном направлении.