У меня есть башня, которая предсказывает положение движущихся мишеней и стреляет снарядом для пересечения.Плавно поверните башню и сохраните точность
метод он использует на основе проверенного ответа на этот пост (2d game : fire at a moving target by predicting intersection of projectile and unit)
и возвращает угол поплавком, рассчитанный с atan2, я также добавить TwoPI удалить негативы.
Если я Lerp движения башенки как этот
currentAngle = MathHelper.Lerp(currentAngle, newAngle, speed)'
Это означает, что чем ближе турель получает меньшие шаги, которые он принимает, снижая скорость вращения и точность отпадет.
Если я использую фиксированные шаги делает что-то вроде этого
if (_angle < newAngle)
{
_angle += fixedStep;
}
if (_angle > newAngle)
{
_angle -= fixedStep;
}
несколько лучшего результата, но я теряю высокую точность, где угол не может получить какую-либо ближе, чем размер фиксированного шага.
Есть ли лучший способ сделать что-то подобное?
Желаемый конечный результат будет плавным перемещением по всему, с турелью, способной ускоряться или замедляться с максимальной скоростью, так как она должна достигать правильного угла, с некоторой дополнительной инерцией, когда внезапно приходится вращать другой путь.
Надеюсь, я смогу немного поработать, но любые советы оценены.