![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ArcTan [Delphi, DelphiX, Windows]
n0p © (2005-07-12 12:13:00)Делаю игру. Хочу, чтобы игрок смотрел в сторону курсора, но угол определяется не так. Если курсор поднять высоко то голова поворацивается вообще на другую сторону :).
if (iX + 4) = MouseX then
Angle := 0
else
Angle := ArcTan((MouseY - (iY + 3))/(MouseX - (iX + 4)));
if MouseX < (iX + 4) then Angle := Angle + PI;
...
Find('head').DrawRotate(DXDraw.Surface, iX + 10, iY + 9, 15, 11, 0, 0.5, 0.9, Trunc(Angle/PI*255));
n0p (2005-07-12 18:37:00) [1]Понял. Угу. Пасиб. Работает.
A22 (2005-07-12 14:44:00) [2]atan2 вернет угол от -pi до +pi. переведи в свой отрезок (тебе нужно 0-255?)
n0p (2005-07-12 13:31:00) [3]
uses ..., Math
...
Angle := ArcTan2((MouseY - (iY + 3)),(MouseX - (iX + 4)));
Ну ничего нового.
Kobik (2005-07-12 12:35:00) [4]Используй ArcTan2 и никаких проверок делать не придется