Как правильно двигать дамми-юнита чтобы он летел за таргетом?
Я вычисляю угол по Atan2(otherPointY-centerPointY, otherPointX-centerPointX)
Потом двигаю даммика по ux+40*Cos(a), uy+40*Sin(a))
Для того чтобы запустить в точку или в стоячего юнита это норм, но если юнит будет отбегать то снаряд конечно летит мимо и лишь немного поворачивается в сторону его движения.
Я думаю что надо двигать учитывая оставшееся расстояние до цели, но чет не могу найти формулу.

С этим гуи я вчера намучался знатно, я вообще любитель просто все готовое брать и использовать, но наверно можешь попробовать другую нормализацию, с сайта пониже в поиске
lenght = SquareRoot(vx * vx + vy * vy)

Наверняка да, после деления слишком маленькое число выходит
`
ОЖИДАНИЕ РЕКЛАМЫ...
21
Братан, ты тут такие вещи не говори, зачем эти тангенсы, косинусы, синусы, при том, что ты уже почти использовал векторы.
Вот для тебя ссылочка. Специально для тебя вчера выложил, тебе нужен последний пункт с вектор от двух точек.
Вкратце:
Нужны переменные vx, vy
vx = targetX - dummyX Все просто, от конца отнять начало
vy = targetY - dummyY
Дальше все не сложнее теоремы пифагора, нужна еще одна переменная lenght
lenght = vx * vx + vy * vy
А дальше лишь нормализация
vx = vx / lenght
vy = vy / lenght

Получаем то, что нужно, прибавляем vx и vy к координатам даммика и все, а чтобы настроить скорость, значение vx и vy нужно умножить на соответствующую переменную.
Лететь будет строго на цель, можешь удостовериться, запустив карту пример с моей ссылки.
19
ofeerist, раскрою секрет, но, так называемая нормализация, и есть sin и cos. :D
6
Единственный вектор который я знаю это vectorman на sega.
У меня лично получилось что скорость уменьшается при отдалении от снаряда и увеличивается при приближении, ну и умножать приходится на просто невероятное число чтобы хоть как-то двигался.
Загруженные файлы
21
С этим гуи я вчера намучался знатно, я вообще любитель просто все готовое брать и использовать, но наверно можешь попробовать другую нормализацию, с сайта пониже в поиске
lenght = SquareRoot(vx * vx + vy * vy)

Наверняка да, после деления слишком маленькое число выходит
Принятый ответ
6
ofeerist: Так деление то чем мне мешает, я могу 50к накидывать, проблема то в другом.
21
Ну так если неправильно вектор нормализовался, то естетственно он будет двигаться с разной скоростью.
11
Увелич скорость полёта снаряда и он будет лететь нормально
Чтобы оставить комментарий, пожалуйста, войдите на сайт.