procedure TMravenec.Zobraz

Zpět
procedure TMravenec.Zobraz;
var x,y,i,vzdalenost : integer;
    angle_deg : integer;  // uhel ve stupnich
    angle_dx : integer; // uhel pro dx pri natoceni obrazku
    px,howmany : integer; // pro vypocet live a enegry

   // best_distance:integer;
begin
 with Ant_Hill do
 begin
 x:=round(xx);
 y:=round(yy);
 if MravenisteForm.WoodScanning1.Checked then
  if (naklad=0) and (uloha>0) then
  begin
   for i:=0 to curr_num_woods-1 do
    if Data_Wood[i].where=2 then
      begin
        vzdalenost:=round(sqrt((x-Data_Wood[i].x)*(x-Data_Wood[i].x)+(y-Data_Wood[i].y)*(y-Data_Wood[i].y)));
        if (vzdalenost<(inteligence*20)) then
          begin
           MravenisteForm.DXDraw1.Surface.Canvas.Pen.Color:=clGreen;
           MravenisteForm.DXDraw1.Surface.Canvas.Pen.Width:=1;
           MravenisteForm.DXDraw1.Surface.Canvas.MoveTo(x,y);
           MravenisteForm.DXDraw1.Surface.Canvas.LineTo(Data_Wood[i].x,Data_Wood[i].y);
           MravenisteForm.DXDraw1.Surface.Canvas.LineTo(Data_Wood[i].x+14,Data_Wood[i].y);
           MravenisteForm.DXDraw1.Surface.Canvas.LineTo(Data_Wood[i].x+14,Data_Wood[i].y+14);
           MravenisteForm.DXDraw1.Surface.Canvas.LineTo(Data_Wood[i].x,Data_Wood[i].y+14);
           MravenisteForm.DXDraw1.Surface.Canvas.LineTo(Data_Wood[i].x,Data_Wood[i].y);
           MravenisteForm.DXDraw1.Surface.Canvas.Release;
         end;
     end;
    end
   else if (naklad=0) and (uloha=0) then
   begin
   for i:=0 to curr_num_eggs-1 do
    if Data_Egg[i].where=2 then
      begin
        vzdalenost:=round(sqrt((x-Data_Egg[i].x)*(x-Data_Egg[i].x)+(y-Data_Egg[i].y)*(y-Data_Egg[i].y)));
        if (vzdalenost<(inteligence*20)) then
          begin
           MravenisteForm.DXDraw1.Surface.Canvas.Pen.Color:=clWhite;
           MravenisteForm.DXDraw1.Surface.Canvas.Pen.Width:=1;
           MravenisteForm.DXDraw1.Surface.Canvas.MoveTo(x,y);
           MravenisteForm.DXDraw1.Surface.Canvas.LineTo(Data_Egg[i].x+5,Data_Egg[i].y+5);
           MravenisteForm.DXDraw1.Surface.Canvas.LineTo(Data_Egg[i].x+21,Data_Egg[i].y+5);
           MravenisteForm.DXDraw1.Surface.Canvas.LineTo(Data_Egg[i].x+21,Data_Egg[i].y+21);
           MravenisteForm.DXDraw1.Surface.Canvas.LineTo(Data_Egg[i].x+5,Data_Egg[i].y+21);
           MravenisteForm.DXDraw1.Surface.Canvas.LineTo(Data_Egg[i].x+5,Data_Egg[i].y+5);
           MravenisteForm.DXDraw1.Surface.Canvas.Release;
         end;
     end;
    end;

 angle_deg:=round(smer/Pi*180);
 if ((angle_deg=0) or (angle_deg=90
 ) or (angle_deg=180) or (angle_deg=270) or (angle_deg=360)) then
  inc(angle_deg);
 angle_dx :=round(angle_deg*255/360);
 if (move_ant=0) or (move_ant=5) or (move_ant=3) then snimek:=(snimek+1) mod PocetSnimku;
 if (move_ant=2) or (move_ant=5) or (move_ant=3) then begin
   px := x - 30;
   MravenisteForm.DXDraw1.Surface.Canvas.MoveTo(x,y);
   MravenisteForm.DXDraw1.Surface.Canvas.Pen.Color:=clSilver;
   MravenisteForm.DXDraw1.Surface.Canvas.Ellipse(x-15, y-15, x+17, y+17);
   MravenisteForm.DXDraw1.Surface.Canvas.Brush.Color:=clSilver;
   MravenisteForm.DXDraw1.Surface.Canvas.Pen.Color:=clBlue;
   MravenisteForm.DXDraw1.Surface.Canvas.Pen.Width:=2;
   MravenisteForm.DXDraw1.Surface.Canvas.MoveTo(px,y-24);
   howmany:=round(75/100*energy);
   MravenisteForm.DXDraw1.Surface.Canvas.LineTo(px+howmany,y-24);
   MravenisteForm.DXDraw1.Surface.Canvas.Pen.Color:=clRed;
   MravenisteForm.DXDraw1.Surface.Canvas.MoveTo(px,y-19);
   howmany:=round(75/100*live);
   MravenisteForm.DXDraw1.Surface.Canvas.LineTo(px+howmany,y-19);
   if uloha=0 then MravenisteForm.DXDraw1.Surface.Canvas.TextOut(x-30,y-40,' Egg Carrier ')
     else MravenisteForm.DXDraw1.Surface.Canvas.TextOut(x-30,y-40,' Wood Carrier ');
   MravenisteForm.DXDraw1.Surface.Canvas.Release;
 end;
 if (live>90) then MravenisteForm.DXImageList1.Items[13].DrawRotate(MravenisteForm.DXDraw1.Surface,x,y,16,16,snimek,0.5,0.5,angle_dx)
   else 
 if naklad=0 then
    MravenisteForm.DXImageList1.Items[1].DrawRotate(MravenisteForm.DXDraw1.Surface,x,y,24,24,snimek,0.5,0.5,angle_dx)
   else if (naklad>=10) and (naklad<=100) then    // rovnost jen v dokumentaci
       MravenisteForm.DXImageList1.Items[12].DrawRotate(MravenisteForm.DXDraw1.Surface,x,y,24,24,snimek,0.5,0.5,angle_dx)
     else if (naklad>100) then
        MravenisteForm.DXImageList1.Items[2].DrawRotate(MravenisteForm.DXDraw1.Surface,x,y,24,24,snimek,0.5,0.5,angle_dx)
 end;
end;

end;