В Step:
Code
{
run_speed=5;//скорость передвижения (пикселей в кадр)
rotate_speed=5;//скорость вращения (градусов в кадр)
mx=mouse_x;//mx и my - координаты точки, к которой надо повернуться,
my=mouse_y;//в данном случае к указателю мыши.
//****постепенный поворот***
if (image_angle>180) image_angle-=360;
if (image_angle<-180) image_angle+=360;
ma=-180*arctan2(my-y,mx-x)/pi;
mx=ma-image_angle;
my=360+mx;
if (my>360) my-=720;
if (abs(mx)>abs(my))mx=my;
if (abs(mx)<rotate_speed)image_angle=ma;
else
{
if (mx>0)
image_angle+=rotate_speed;
else
image_angle-=rotate_speed;
}
//******
//***движение к точке***
x-=run_speed*sin(pi*(image_angle-90)/180);
y-=run_speed*cos(pi*(image_angle-90)/180);
//******
}