Hallo,
Da mich das Thema interessiert, versuch ich jetzt auf der basis einer Canvas Funktion ein Labyrinth darzustellen. (Soll wenn es fertig ist OpenSource werden)
Ich gebe hier mal ein Beispiel wie du eine Map (aus einer Bitmap Datei) auslesen und auf deine Form zeichnen kannst
Delphi-Quellcode:
var Map: TBitmap;
procedure InitMap;
begin
Map := TBitmap.Create;
Map.LoadFromFile('Map.bmp');
end;
procedure DrawMap;
var x, y: Integer;
begin
for x := 1 to Map.Width do
begin
for y := 1 to Map.Height do
begin
Form1.Canvas.Brush.Color := Map.Canvas.Pixels[x,y]; //Damit der Inhalt die Farbe des Pixels annimmt
Form1.Canvas.Pen.Color := Map.Canvas.Pixels[x,y]; //Damit der Zeichen Stift die Farbe des Pixels annimm
//weglassen wenn du einen Rahmen um deine "Zelle" willst
Form1.Canvas.Rectangle(x*20-20, y*20-20, x*20. y*20); // Ein Rechteck ("Zelle"), 20*20 Pixel groß zeichnen
end;
end;
end;
Ich hab den Code nicht getestet, könnten also noch fehler drin sein
Du brauchst nur noch ein Timer in dem du immer die Draw Procedure aufrufst und am besten danach das ganze "erneuerst" (Stichwort: Form1.Canvas.Refresh )
Ich hoffe das hat dir etwas weitergeholfen
//Edit Ups, den Link leider etwas zu spät gesehen, dan fällt das wohl mit dem Bitmap weg, aber stats Map.Height und Map.Width kannst die größe deines Labysrinths angeben und Pen.Color eben den Wert clWhite und Brush.Color den Wert für Grau zuweisen, somit kannst du die Draw Procedure dennoch verwenden
MFG
Maximus