Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Schachbrett


Shakyr - Fr 07.12.07 18:24
Titel: Schachbrett
Erstmal Hallo an Alle hier!!
Ich hab da mal ne Frage:
Ich möchte ein Schachbrett mit 8*8 Felder programieren und darauf einen Kreis als Spielfigur den ich mit Buttons nach rechts,links usw. verschieben möchte.
Wie kann ich jetzt die Figur verschieben? Aber bitte nicht in irgentwelchen Fachausdrücken schreiben, da ich auf diesem Thema nicht sehr bewandert bin.
Vielen Dank im Vorraus!
Hier ist das Schachbrett:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
procedure TForm1.Image1Click(Sender: TObject);
begin
  for x:= 0 to 7 do
for y:= 0 to 7 do
   begin
    begin
   Image1.Canvas.Brush.Color:=clwhite;
   if odd (x+y)= true
   then
   Image1.Canvas.Brush.Color:=clblack;
   end;
   Image1.Canvas.Rectangle(x*40+20,y*40+20,x*40+60,y*40+60);


  end;
  end;


Moderiert von user profile iconGausi: Delphi-Tags hinzugefügt


Zorro - Fr 07.12.07 18:46
Titel: Re: Schachbrett
user profile iconShakyr hat folgendes geschrieben:
Erstmal Hallo an Alle hier!!
Ich hab da mal ne Frage:
Ich möchte ein Schachbrett mit 8*8 Felder programieren und darauf einen Kreis als Spielfigur den ich mit Buttons nach rechts,links usw. verschieben möchte.
Wie kann ich jetzt die Figur verschieben? Aber bitte nicht in irgentwelchen...


Kreis an der Originalstelle mit Hintergrundfarbe erneut zeichnen (= löschen) und an der neuen Stelle (mit Vordergrundfarbe) zeichnen.

Greetz
Zorro


Sinspin - Fr 07.12.07 19:58

Hi und :welcome: ,

wie du einen kreis zeichnest ist dir klar?
ist ja nichts anderes wie dein Rectangle.

das interessante bei einem kreis zeichnen ist, das du nicht den mittelpunkt des kreises und seinen radius oder durchmesser angibst, sondern das rechteck in dessen innerem der kreis gezeichnet wird, wobei der kreis die maximal mögliche größe annimmt.

beim zeichnen kommt es darauf an wie du verschieben willst.
soll der kreis einfach aus dem alten feld verschwinden und im neuen auftauchen? dann geht es genau so wie mein vorredner schon geschrieben hat.
oder du zeichnest an der alten position einfach wieder das feld drüber in der farbe die es hat und zeichnest den kreis an die neue stelle.