also meine snake wächst jetzt...
jedoch hab ich eine procedur zum zeichnen und eine zum bewgen :
Delphi-Quellcode:
procedure tsnake.zeigedich(Canvas:TCanvas);
var i:integer;
begin
i:=1;
Canvas.Brush.Color:=Farbe; // hier wird festgelegt, das snake die farbe "Fkare hat, die wir in der klasse
for i:=1 to laenge do
begin
canvas.Rectangle(x[i],y[i],x[i]+2*r,y[i]+2*r);
Canvas.Brush.Color:=clgreen;
end;
end;
// -------------------------------------------------------------------------- //
// Alle Prozeduren durch diese MArkierung getrennt !!
// -------------------------------------------------------------------------- //
procedure tsnake.bewegedich(Image:TImage);
var i:integer;
begin
for i:=laenge-1 downto 1 do
begin
x[i+1]:=x[i];
Y[i+1]:=y[i];
end;
x[1]:=x[1] + 2*r*vx;
Y[1]:=y[1] + 2*r*vy;
if(x[1]>Image.Width) then //wenn die x-Koordinate(linkes oberes Eck von snake)
begin
x[1] := image.Width-600; //am rechten Rand steht, soll er snake am linken rand "befördern" ohne richtungswechsel
end;
if x[1]<-2*r then // hier wird snake befohlen, dass wenn er mit seinem durchmesser hinter dem linken rand steht, zum rechten rand befördert wird, ohne richtungswechsel
begin
x[1]:=image.Width-2*r;
end;
if(y[1]> image.Height) then //bei der folgenden procedure
begin //passiert das selbe wie in der vorrigen
y[1]:=image.height-400; //mit der Ausnahme das snake hier nicht über den oberen
//und unteren rand stoßen kann
end;
if y[1] <-2*r then
begin
y[1]:=image.Height-2*r;
end;
end;
wunder dich nich über die klammern nach den procedures(zb.Canvas:TCanvas), das kommt daher, dass ich mehrere units in meinem programm hab
[edit=Phoenix]Alcaeus hatte Dich im ersten Beitrag schon darauf hingewiesen: Bitte füge bei solchen Coceblöcken selber Delphi-Tags ein! Mfg, Phoenix[/edit]