Hab einen fehler gemacht:
so ist mein eigentlicher Quelltext:
Delphi-Quellcode:
if laenge = 100 then
begin
image1.canvas.moveto(shape1.left, shape1.top);
image1.canvas.lineto(round(mittex), round(mittey));
end;
und das image ist bildschirmfüllend, also kann das shape das image nicht überlappen
Edit: du wolltest etwas Quelltext^^ Hier hast du =)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
n : integer;
begin
shape1.visible := True;
Timer1.enabled := True;
randomize;
n := random(4)+1;
if (n=1) or (n=2) or (n=3) then
begin
randomize;
shape1.left:= 5;
shape1.top:= random(775+1);
end;
if n=2 then
begin
randomize;
shape1.left:= random(1320+1);
shape1.top:= 5;
end;
if n=1 then
begin
randomize;
shape1.left:= 1300;
shape1.top:= random(775+1);
end;
if n=2 then
begin
randomize;
shape1.left:= random(1320+1);
shape1.top:= 775;
end;
end;
procedure TForm1.Image1Click(Sender: TObject);
begin
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
mittex := shape2.Left;
mittey := shape2.top;
schiffx := shape1.left;
schiffy := shape1.top;
vx := mittex-schiffx;
vy := mittey-schiffy;
laenge := sqrt(sqr(vx)+sqr(vy));
if laenge >100 then
begin
vx := vx/laenge;
vy := vy/laenge;
schiffx :=round(schiffx+vx*1);
schiffy := round(schiffy+vy*1);
shape1.left := round(schiffx);
shape1.top := round(schiffy);
if laenge = 100 then
begin
image1.canvas.moveto(shape1.left, shape1.top);
image1.canvas.lineto(round(mittex), round(mittey));
end;