Hallo,
die Procedure nachLinks gehört nicht zur TSpielfeld.
Darum kracht es wenn Du in diese Procedure auf Bild.Canvas.Pixels zugreifst.
Die Procedure kennt Bild nicht.
Entweder Du packst die Procedure als Methode zu TSpielfeld oder
Du schreibst anstelle von Bild.Canvas.Picxels -> Spielfeld.Bild.Canvas.Pixels.
Grüße
Klaus
P.S.
Einigerma0en richtig formatiert schaut die Procedure so aus:
Delphi-Quellcode:
procedure nachlinks;
begin
if ball1.vx=0 then
begin
if Spielfeld.Bild.Canvas.Pixels[Round(ball1.x),Round(ball1.y+ball1.r+1)]=clblack then
begin
if (ball1.vx=0)and (ball1.vy>0) then
begin
ball1.vx:=5;
ball1.vy:=0;
end
else
if (ball1.vx=0)and (ball1.vy<0) then
begin
ball1.vx:=-5;
ball1.vy:=0;
end
else
if (ball1.vx<0)and (ball1.vy=0) then
begin
ball1.vx:=0;
ball1.vy:=5;
end
else
if (ball1.vx>0)and (ball1.vy=0) then
begin
ball1.vx:=0;
ball1.vy:=-5;
end
end
end;
if ball1.vy=0 then
begin
if spielfeld.Bild.Canvas.Pixels[(ball1.x+ball1.r+1),(ball1.y)] = clblack then
begin
if (ball1.vx=0)and (ball1.vy>0) then
begin
ball1.vx:=5;
ball1.vy:=0;
end
else
if (ball1.vx=0)and (ball1.vy<0) then
begin
ball1.vx:=-5;
ball1.vy:=0;
end
else
if (ball1.vx<0)and (ball1.vy=0) then
begin
ball1.vx:=0;
ball1.vy:=5;
end
else
if (ball1.vx>0)and (ball1.vy=0) then
begin
ball1.vx:=0;
ball1.vy:=-5;
end
end
end;
end;