Skymanrus!
Первый вопрос. Новая версия скоро будет? :)
Второй. Расскажи для чего арк тангенсы нужны? Может подскажешь, что почитать на эту тему?
Код:
function ArcTan2(y : Extended; x : Extended) : Extended;
begin
if (x=0) then x:=0.01;
Result:=1;
Try
begin
if (((x>=0) and (y>0)) or ((x>=0) and (y<=0))) then Result:=ArcTan(y/x)*180/pi;
if ((x<0) and (y>=0)) then Result:=(ArcTan(y/x)*180/pi)+180;
if ((x<0) and (y<0)) then Result:=(ArcTan(y/x)*180/pi)-180;
end;
except on E:Exception do
begin
ShowMessage('код 4: y:'+floattostr(y)+' x:'+floattostr(x)+' Result:'+floattostr(Result)+' !'+E.ClassName+' ошибка: '+E.Message);
end;
end;
end;
и
Код:
//--------эта процедура вычисляет мои реальные координаты-----------//
procedure MYposPROC;
var
i:integer;
begin
if(on1=true)then
begin
try
begin
HPtime:=HPtime+1;
if(myXreal=0) then
begin
myXreal:=myXpot;
myYreal:=myYpot;
end;
//изменение текущих координат чара
if ((myXreal<>0) and (myYreal<>0) and (ras(myXreal, myYreal, myXpot, myYpot)>=33)) then
begin
myXreal:=round(myXreal+((MYspeed/2)*cos(pi+(pi/180*ArcTan2(myYreal-myYpot,myXreal-myXpot)))));
myYreal:=round(myYreal+((MYspeed/2)*sin(pi+(pi/180*ArcTan2(myYreal-myYpot,myXreal-myXpot)))));
end;
//обновляем растояния от меня до мобов
for i:=0 to length(MobsRAS)-1 do
begin
if(MobsRAS[i]<>0) then MobsRAS[i]:=ras(myXreal,myYreal,MobsX[i],MobsY[i]);
//включаем режим бота если onSKYbot=true
if(onSKYbot=true)then
begin
if(myXradiy=0) then
begin
myXradiy:=myXreal;
myYradiy:=myYreal;
yaSIT:=false;
end;
end
else
begin
myXradiy:=0;
myYradiy:=0;
end;
end;
except on E:Exception do ShowMessage('код 54: onSKYbot:'+Booltostr(onSKYbot)+' myXreal:'+inttostr(myXreal));
end;
end;
end;