Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как крутить спрайты? [Delphi, DelphiX, Windows]


Wish ©   (2004-11-06 10:57:00) 

Сабж. Я пытался юзать DrawRotate(), но не работает. Еще чтобы найти градус прокрутки я написал формулу вычесления градуса поворота относительно игрока и положения мышки, но появляется ошибка: Incompatible types. В чем тут ошибка:

FAngle:= ArcSin(mouse.CursorPos.Y - round(ply)) div sqrt(((mouse.CursorPos.X - round(plx))*(mouse.CursorPos.X - round(plx))+((mouse.CursorPos.Y - round(ply))*(mouse.CursorPos.Y - round(ply)))));


dRake   (2004-11-06 13:51:00) [1]

Упс забыл :)


FUNCTION v_Len( x1, y1, x2, y2 : single ) : single;
VAR
 TMP : single;

BEGIN;

 TMP := sqrt((x2 - x1)*(x2 - x1) + (y2 - y1)*(y2 - y1));
 if (TMP = 0) then TMP := 0.0001;
 Result := TMP;

END;


dRake   (2004-11-06 13:49:00) [2]

Ну по поводу 1-ой части хз DelphiX не юзал
Imcompatible types из-за того что ArcSin(mouse.CursorPos.Y - round(ply)) - float а ты пытаешся его div, да еще и на другой флоат.

Посмотри я тут функцию накалякал для своей игрухи


FUNCTION v_Ang( x1, y1, x2, y2 : single ) : single;
VAR
 TMP : single;

BEGIN;

 TMP := v_Len(x1, y1, x2, y2);

 if (x2 >= x1) and (y2 > y1)  then Result := arccos((x2 - x1)/TMP)*180/Pi +   0;
 if (x2 <  x1) and (y2 >= y1) then Result := arccos((y2 - y1)/TMP)*180/Pi +  90;
 if (x2 <= x1) and (y2 < y1)  then Result := arccos((x1 - x2)/TMP)*180/Pi + 180;
 if (x2 > x1)  and (y2 <= y1) then Result := arccos((y1 - y2)/TMP)*180/Pi + 270;

END;


Возвращает угол в градусах между прямой, проведенной через точки с координатами x1, y1, x2, y2 и осью ОХ. Хоть и топорно написанна, зато работает :)


Наверх

Титульная страница Поиск, карта сайта Написать письмо