Добавлен not_name
Хочу понять как работать с X и Y ( нешарю в джасе )
call SetUnitX(GetEnumUnit(), GetLocationX(udg_all_point[2]) )
call SetUnitY(GetEnumUnit(), GetLocationY(udg_all_point[2]) )
хочу сделать типа ветра сдувающего ( но если двигать стандартной мгновенно переместить юнитов стопит )( через X и Y не стопит )
если статья как работать с X и Y ?
call SetUnitX(GetEnumUnit(), GetLocationX(udg_all_point[2]) )
call SetUnitY(GetEnumUnit(), GetLocationY(udg_all_point[2]) )
хочу сделать типа ветра сдувающего ( но если двигать стандартной мгновенно переместить юнитов стопит )( через X и Y не стопит )
если статья как работать с X и Y ?
вот карту что именно я хочу сделать
Принятый ответ
local location loc=GetUnitLoc(GetEnumUnit())
local location tcLoc=GetUnitLoc(udg_topot_caster)
local real a=AngleBetweenPoints(tcLoc, loc)
call SetUnitX(GetEnumUnit(),GetLocationX(loc) +CosBJ(a) * 10.00 )
call SetUnitY(GetEnumUnit(),GetLocationY(loc) +SinBJ(a) * 10.00 )
call RemoveLocation(tcLoc)
call RemoveLocation(loc)
set tcLoc=null
set loc=null
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Только еще проверка нужна, что координаты НЕ за пределами карты, чтоб не сфаталило
В идеале вообще локейшены не юзать, но это пока и мне тяжело
Отредактирован GetLocalPlayer
хотя бы вот шаблон на линейное движение в одном направлении на X/Y пригодился бы
Отредактирован Maniac_91
u - юнит, x, y - координаты юнита; a - угол.
call SetUnitX(u, x*Cos(a))
call SetUnitY(u, y*Sin(a))
set a = Atan2(y2-y, x2-x)