Thema: Delphi Labyrinth

Einzelnen Beitrag anzeigen

Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.771 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Labyrinth

  Alt 30. Mär 2008, 22:00
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;
Klaus
  Mit Zitat antworten Zitat