У меня есть запрос, связанный с обратным круговым движением. У меня есть код ниже. Случай 1 - это круговое движение по часовой стрелке, а случай 2 - против часовой стрелки. Переключение между вариантами 1 и 2 выполняется одним касанием пользователя. Когда он переключается с часовой стрелки на против часовой стрелки, он использует одно и то же значение в sin()
и cos()
, которое равно timer/1.5
. Это заставляет движение против часовой стрелки начинать с другой позиции на моей планете. Я хочу вычислить значение, необходимое для моего таймера, чтобы движение против часовой стрелки начиналось с того места, где оно было остановлено во время движения по часовой стрелке, и, таким образом, иметь плавный переход. Кто-нибудь знает правильную математику для этого, так как мой ум застрял?
Просто небольшое объяснение кода ниже. Я вычисляю положение своего робота, беря координаты x и y Планеты, на которой он находится, и выполняю круговое движение с радиусом радиуса Планеты + 55 (это удобная высота для моего спрайта).
case 1:
positionX = AttachedPlanet.positionX + sin(timer/1.5)*(AttachedPlanet.planetRadius + 55);
positionY = AttachedPlanet.positionY + cos(timer/1.5)*(AttachedPlanet.planetRadius + 55);
timer = timer + 0.02;
break;
case 2:
positionX = AttachedPlanet.positionX + cos(timer/1.5)*(AttachedPlanet.planetRadius + 55);
positionY = AttachedPlanet.positionY + sin(timer/1.5)*(AttachedPlanet.planetRadius + 55);
timer = timer + 0.02;