
Originally Posted by
malotthouse
someone should make a program that makes a perfect loop. that would be sweet for this game.
SCAR Code:
procedure Circle(MidX,MidY,rad,sAngle,eAngle: Integer; accuracy,xOffset,yOffset: Extended);
var
x,y,dloop,eloop: Integer;
angle: Extended;
begin
angle := sAngle;
X := MidX + Round(xOffset * (rad * Cos(Radians(angle - 90))));
Y := MidY + Round(yOffset * (rad * Sin(Radians(angle - 90))));
HoldMouse(x,y,True);
Sleep(500);
if(sAngle > eAngle) then
eloop := Round((sAngle - eAngle) * (1/accuracy))
else
eloop := Round((eAngle - sAngle) * (1/accuracy));
repeat
if(sAngle < eAngle) then
angle := angle + accuracy
else
angle := angle - accuracy;
Inc(dloop);
X := MidX + Round(xOffset * (rad * Cos(Radians(angle - 90))));
Y := MidY + Round(yOffset * (rad * Sin(Radians(angle - 90))));
movemouse(x,y);
Wait(5);
until (dloop >= eloop);
ReleaseMouse(x,y,True);
end;
MidX and MidY are the starting points, rad is the radius of the circle, sAngle is the start angle and eAngle is the end angle, accuracy is how accurate you want the circle points to be (0.5 recomended though 1 works well too) and xOffset and yOffset change the shape of it into an eclipse with the widest point being rad * xOffset and the highest point being rad * yOffset 
Also, if you want it to draw the arc the other way, just put 360 as sAngle and eAngle as 0 (or whatever you want it to be).