AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Labyrinth darstellen

Ein Thema von Skyrunner2 · begonnen am 5. Feb 2005 · letzter Beitrag vom 6. Feb 2005
 
Maximus

Registriert seit: 26. Okt 2003
169 Beiträge
 
#5

Re: Labyrinth darstellen

  Alt 6. Feb 2005, 07:58
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
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz