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