Добавлен Pavell
В общем, суть следующая: я сделал способность "Рывок": Герой бежит к указанному противнику, слегка отталкивая всех войнов по пути (включая своих). Остальное не важно. Сама проблема заключается в том, что в некоторых случаях отталкивание идет не в ту сторону, которую нужно (в зависимости от того, где расположен попадающийся объект, справа или слева, он отталкивается с разницей в 90 градусов от текущего поворота героя). Я уже перепробовал множество глупых способов, но максимум я смог сделать, чтобы лишь в большинстве случаев отталкивание шло правильно.
Принятый ответ
function GetDirection takes unit u, unit targ returns int
local real alpha = GetUnitFacing(u)
local real gamma = bj_RADTODEG * Atan2(GetUnitY(targ)-GetUnitY(u), GetUnitX(targ)-GetUnitX(u))
if gamma < 0 then
set gamma = 360. + gamma
endif
if (alpha < 180. and not(gamma > alpha and gamma < alpha + 180.)) or (alpha > 180. and gamma > alpha - 180. and gamma < alpha) then
return 2
else
return 1
endif
endfunction
1 право, 2 лево, вроде бы
и обнулять реал это мощно... и хеш таблица не корректно используется...
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
лень открывать карту
Ред. Pavell
период 0,02
в общем омг
я напишу сегодня как я бы делал это
потом глянешь
что и где у тебя не правильно
Ред. Hate