Einzelnen Beitrag anzeigen

Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Neue Frage zu Snake

  Alt 30. Sep 2006, 14:15
Zitat von TaIPaN:
Delphi-Quellcode:
for i:=1 to laenge do
begin
  x[i+1]:=x[i];
  y[i+1]:=y[i];
  Spielfeld.Bild.Canvas.Rectangle(x[i], y[i], x[i]+2*r, y[i]+2*r);
end;
In dieser Schleife aus TSnake.Wachsen liegt wohl der Fehler: x[2] wird auf x[1] gesetzt. Beim nächsten Durchlauf wird x[3] dann auf x[2] gesetzt, was ja beim vorherigen Durchlauf auf x[1] gesetzt wurde. Am Ende ist also x[1] = x[2] = x[3] = x[Laenge]. Das gleiche gilt natürlich für's y.
Versuchs mal mit einer For-downto-Schleife:

Delphi-Quellcode:
for i := Laenge downto 2 do
begin
  x[i] := x[i - 1];
  y[i] := y[i - 1];
  Spielfeld.Bild.Canvas.Rectangle(x[i], y[i], x[i]+2*r, y[i]+2*r);
end;
  Mit Zitat antworten Zitat