BESTEN DANK ES GEHT. Ich musste nur den Radios anpassen.
Der Kreis wird jetzt auch angezeigt.
Zitat:
Ja, du verstehst es richtig. 5 - Das sind auf denm Bildschirm ca. 3 Milimeter
Ja habe ich gesehen als ich den Kreis gezeichnet habe. das 5 wohl etwas zu wenig sind, ich habe jetzt 100.
Delphi-Quellcode:
procedure TForm1.Timer1Timer(Sender: TObject);
const
Radius=100;
var
t:Real;
mx1,my1,mx2,my2:Integer;
begin
if s1.Visible then begin
mx1:=s1.left+(s1.Width div 2);
my1:=s1.top+(s1.Height div 2);
mx2:=s2.left+(s2.Width div 2);
my2:=s2.top+(s2.Height div 2);
t:=sqr(mx1-mx2)+sqr(my1-my2);
engine.OutCanvas.Brush.Style:=bsClear;
engine.OutCanvas.Ellipse(mx2-Radius,my2-Radius,mx2+Radius,my2+Radius);
// t:=sqr(s1.left-s2.Left) + sqr(s1.Top-s2.top);
s4.SpriteImage.Canvas.Brush.color:=clRed;
s4.SpriteImage.Canvas.FillRect(0,0,100,20);
s4.SpriteImage.Canvas.textout(0,0,Format('%f',[sqrt(t)]));
s4.DrawSprite;
if sqrt(t) <= Radius then begin
ShotMove;
end;
end;
end;
so sieht jetzt die ganze Procedure aus