Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.11.27;
Скачать: CL | DM;

Вниз

ArcTan   Найти похожие ветки 

 
n0p   (2005-07-12 12:13) [0]

Делаю игру. Хочу, чтобы игрок смотрел в сторону курсора, но угол определяется не так. Если курсор поднять высоко то голова поворацивается вообще на другую сторону :).

 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));


 
Kobik ©   (2005-07-12 12:35) [1]

Используй ArcTan2 и никаких проверок делать не придется


 
n0p   (2005-07-12 13:31) [2]


uses ..., Math
...
Angle := ArcTan2((MouseY - (iY + 3)),(MouseX - (iX + 4)));


Ну ничего нового.


 
A22 ©   (2005-07-12 14:44) [3]

atan2 вернет угол от -pi до +pi. переведи в свой отрезок (тебе нужно 0-255?)


 
n0p   (2005-07-12 18:37) [4]

Понял. Угу. Пасиб. Работает.



Страницы: 1 вся ветка

Текущий архив: 2005.11.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.058 c
10-1108539807
Карелин Артем
2005-02-16 10:43
2005.11.27
CreateRemoteComObject и обьект Automation на другом компьютере.


14-1131051081
Profi
2005-11-03 23:51
2005.11.27
Почему программисты на С++ ценятся больше чем на Delphi?


4-1127749490
Ejik
2005-09-26 19:44
2005.11.27
ловушки на открытие фалов и каталогов


5-1112544878
Cash
2005-04-03 20:14
2005.11.27
TPropertyEditor->"Продолжение"


1-1130678275
Igor_thief
2005-10-30 16:17
2005.11.27
Listview и групировка (grouping)