Quote (mullo)
Либо я магу за 5 вебмани баксов ))
Это финансовый кризис так нехорошо на людей влияет? Morkus,
Не знаю как именно на GM, но в общем виде делается так:
1) Получаем угол между юнитом (пусть Cx,Cy) и прицелом (Cx1, Cy1),
вспоминаем школу или институт Мысленно строим прямоугольный треугольник:
a:=Cx1-Сx; - прилежащий катет
b:=Cy1-Сy; - противолежащий
c:=sqrt(a*a+b*b); - гипотенуза (квадратный корень из суммы квадратов катетов (по теореме Пифагора))
Дальше получаем угол каким-нибудь математическим способом, тут нужно учитывать в каком интервале работает функция поворота и откуда начинается отсчёт градусов , можно сделать -180-180 или 0-360 градусов или вообще в радианах, я как-то раз делал через арккосинус:
If b<0 Then
GetAngle:=(-(ArcCos(a/c))/pi*180)
Else
GetAngle:=((ArcCos(a/c))/pi*180);
2) Поворачиваем юнит (модель, спрайт или что там у тебя) на нужный угол вокруг нужной оси с заданным интервалом времени или при перемещении прицела.