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

  • Автор темы Dock1100
  • Дата начала
D

Dock1100

Как заставить спрайт смотреть прямо на курсор а не левее, правее?
 
D

Dock1100

Все, разобралса.
В 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(для удобства))
 

Вложения

  • dxsprite.rar
    5,3 КБ · Просмотры: 159
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!