procedure TMravenec.Zobraz
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;
|