Добавлен Enemy1PK
Как правильно двигать дамми-юнита чтобы он летел за таргетом?
Я вычисляю угол по Atan2(otherPointY-centerPointY, otherPointX-centerPointX)
Потом двигаю даммика по ux+40*Cos(a), uy+40*Sin(a))
Для того чтобы запустить в точку или в стоячего юнита это норм, но если юнит будет отбегать то снаряд конечно летит мимо и лишь немного поворачивается в сторону его движения.
Я думаю что надо двигать учитывая оставшееся расстояние до цели, но чет не могу найти формулу.
Я вычисляю угол по Atan2(otherPointY-centerPointY, otherPointX-centerPointX)
Потом двигаю даммика по ux+40*Cos(a), uy+40*Sin(a))
Для того чтобы запустить в точку или в стоячего юнита это норм, но если юнит будет отбегать то снаряд конечно летит мимо и лишь немного поворачивается в сторону его движения.
Я думаю что надо двигать учитывая оставшееся расстояние до цели, но чет не могу найти формулу.
Принятый ответ
С этим гуи я вчера намучался знатно, я вообще любитель просто все готовое брать и использовать, но наверно можешь попробовать другую нормализацию, с сайта пониже в поиске
lenght = SquareRoot(vx * vx + vy * vy)
lenght = SquareRoot(vx * vx + vy * vy)
Наверняка да, после деления слишком маленькое число выходит
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Ред. ofeerist
Вот для тебя ссылочка. Специально для тебя вчера выложил, тебе нужен последний пункт с вектор от двух точек.
Вкратце:
Нужны переменные vx, vy
vx = targetX - dummyX Все просто, от конца отнять начало
vy = targetY - dummyY
Дальше все не сложнее теоремы пифагора, нужна еще одна переменная lenght
lenght = vx * vx + vy * vy
А дальше лишь нормализация
vx = vx / lenght
vy = vy / lenght
Лететь будет строго на цель, можешь удостовериться, запустив карту пример с моей ссылки.
У меня лично получилось что скорость уменьшается при отдалении от снаряда и увеличивается при приближении, ну и умножать приходится на просто невероятное число чтобы хоть как-то двигался.
lenght = SquareRoot(vx * vx + vy * vy)