Как плавно повышать или понижать высоту dummy с точки A к точке B
x = GetUnitX(цель) - GetUnitX(P_a.dummy);
y = GetUnitY(цель) - GetUnitY(P_a.dummy);
z = GetUnitZ(цель) - GetUnitZ(P_a.dummy);
r = SquareRoot(x*x + y*y + z*z)
так я узнаю дистанцию между точками (юнитами)
потом двигаю
a = RADTODEG * Atan2(GetUnitY(P_a.at2) - GetUnitY(P_a.dummy), GetUnitX(P_a.at2) -
GetUnitX(P_a.dummy))
//поворот дамика
SetUnitFacingTimed(P_a.dummy, a, 0)
//координаты
x = GetUnitX(P_a.dummy);
y = GetUnitY(P_a.dummy);
z = GetUnitZ(P_a.dummy);
//смещение
x = x + move_cord * Cos(DEGTORAD * a);
y = y + move_cord * Sin(DEGTORAD * a);
//z = ??? как работать с высотой ?
SetUnitX(P_a.dummy, x);
SetUnitY(P_a.dummy, y);
SetUnitZ(P_a.dummy, z);
Принятый ответ
Посмотри в этой карте, там есть полёт гранаты. Запусти карту и посмотри, как выглядит этот полёт гранаты, в игре нажми G, чтоб кинуть её. Потом открываешь карту, заходишь в триггеры, открываешь папку Shoot, в которой есть триггер Grenades и смотришь, как сделали этот полёт гранаты.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
я знаю как утсновить высоту
мне надо чтобы снаряд повышеал или понижал высоту плавно пока летит к цели
Sergey105,
Sergey105: Таймер.
Ред. N7 Molot
Zahanc, ясно что таймером я и двигаю таймером тут без него не как
и незнаю как
вот и задал впопрос как сделать
у меня высота допустим 50 у моей цели 200 мне надо чтобы высота постепенно повышалась дамика пока она летит к цели и достигла равной высоты цели
ну или понизилась если цель опустилась ниже
Ред. Zahanc
z = RMinBJ(z - (targetZ - z) * timeout, targetZ)
elseif z < targetZ then
z = RMaxBJ(z + (targetZ - z) * timeout, targetZ)
endif
+
Обновил. Заменил статичное число.
Ред. Hate
time = время за которое снаряд пролетит все свое расстояние
у юнита должен стоять тип движения земноводный, и нулевые крены
изучайте прикрепленную карту
Ред. scopterectus