Delphix слежение спрайта за мышкой

09.11.2009
665
1
#1
Как заставить спрайт смотреть прямо на курсор а не левее, правее?
 
09.11.2009
665
1
#2
Все, разобралса.
В DelphiХ 360 градусов = 256 градусов(для поворота), тоесть
<!--shcode--><pre><code class='auto delphi'>function getanglefromline(x1,y1,x2,y2:double):integer;//ищу угол
var g,k,angle:single;
begin
g:=sqrt(sqr(x1-x2)+sqr(y1-y2));
k:=x2-x1;
if k = 0 then angle := 0
else if g=0 then angle:=1
else angle:=k/g;
angle:=ArcCos(angle);
angle:=radtodeg(angle);
if y1<y2 then angle:=360 - angle;
angle:=angle-90; // - 90 потому что я сначало ущу угол к Ох, а потом к Оу(отнимаю 90)
if angle<0 then angle:=270 + Abs(90-abs(angle));
getanglefromline:=round(angle);
end;

procedure TForm1.DXDraw1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
var g:real;
begin
g:=getanglefromline(gun.X+gun.Image.Width/2,gun.Y+gun.Image.Height/2,x,y);
g:=(360-g)*128/180;
gun.Angle:=round(g);
end;[/CODE]

ЗЫ замените файл DXSprite на приложеный(там добавлена процедура Angle(для удобства))
 

Вложения