Я пытаюсь сделать вращение игрового объекта, установив начальную и конечную точку и X кадров, чтобы сделать движение. Затем интерполируйте начальный и конечный угол, чтобы сделать это.
Это работает хорошо, но я пытаюсь сделать кратчайший маршрут как вариант (в отличие от "сделать самый длинный маршрут").
В большинстве случаев это работает, но если вращение поднимается выше 360 или ниже 0, я не знаю, как его обнаружить и изменить числа. (например, если я хочу выбрать кратчайший маршрут из 270 до 90, кратчайший маршрут превышает 360/0, поэтому он никогда не используется, поэтому для интерполяции в 90 значение 270 должно стать -45).
Я ужасно объясняю, и я не являюсь носителем английского языка, чтобы округлять его, поэтому я буду использовать псевдокод того, что у меня есть.
thing.start_angle = 180
thing.end_angle = 90
thing.angle = interpolate(thing.start_angle, thing.end_angle, position)
Мне нравится этот способ (для подробного контроля времени над «если угол> max_angle, то угол - 1»), но я не могу найти «правило», как определить, будет ли угол вращаться
Как я могу узнать, будет ли вращение ниже 0 или выше 360, чтобы действовать соответственно?