В настоящий момент я правильно нахожу расстояние и вращение объекта и курсора на экране.
Vector2 direction = podType[podIndex]._Position - MouseCursorInWorld;
mousePoint = (float)(Math.Atan2(-direction.X, direction.Y));
Это работает отлично, следующий шаг, который я сделал, выяснил, как я могу медленно поворачивать текущее направлениечтобы положение мыши было использовать процент, который работает нормально, но есть 1 основная проблема, которую я пытаюсь исправить
percent = mousePoint / mousePoint * increment;
if(percent < mousePoint)increment += 0.01f;
if (percent > mousePoint) increment -= 0.01f;
Как вы можете видеть здесь, процент - это процент от общего поворота ккурсор, и если вращение меньше или больше, чем процент, который он перемещает к этому приращению, пока он не достигнет 100%, что означает, что он правильно направлен на курсор.
Проблема в том, что левая сторона отрицательна, а правая сторонаположительно, мое полное вращение достигает 3,1 и -3,1, поэтому, когда я перемещаю курсор внизу куда-то и двигаюсь из крайнего правого положения в крайнее левое, вместо продолжения своего пути влево к курсору, он вращается вправо, потому что текущая мышьзначение точки отрицательное 2,2, которое в настоящее время было положительным 1,5
здесь каким-то образом я могу обернуть вращение, чтобы оно не имело отрицательного и положительного угла?Или есть лучшая техника, которую я могу использовать, чем та, которой я сейчас занимаюсь?Спасибо за ваше время:)