Я рекомендую рассчитывать x и y компоненты вашего движения независимо.
использование тригонометрических операций значительно замедляет вашу программу.
простое решение для вашей проблемы:
float dx = targetX - positionX;
float dy = targetY - positionY;
positionX = positionX + dx;
positionY = positionY + dy;
в этом примере кода вы вычисляете расстояние x и y от вашей позиции до цели
и вы двигаетесь туда за один шаг.
Вы можете применить фактор времени (<1) и выполнить расчет несколько раз, чтобы он выглядел так, как будто ваш объект движется. </p>
Обратите внимание, что + и - намного быстрее, чем cos()
, sin()
и т. Д.