![]() |
Spielfeld aus Textdatei laden
Ich möchte gerne z.B diese Textdatei in ein Spielfeld "umwandeln" :
111111111111111 1_____________1 1_____________1 1_____________1 1_____________1 1_____________1 1_____________1 1_____________1 1_____________1 1_____________1 1_____________1 1_____________1 1_____________1 1_____________1 1_____________1 1_____________1 1_____________1 1_____________1 1_____________1 111111111111111 wobei die einsen Mauerstücke und die Felder mit Unterstrich Boden sind. ich habe hier den Code dafür in Blitz Basic, aber weiß nicht wie ich ihn in Delphi umsetzen soll !
Delphi-Quellcode:
Das Problem ist das ist das ich den Blitz Basic Code auch nicht vollständig verstehe :(
tiles = LoadImage("Wand.bmp")
Dim Level$(14,19) leveldatei = ReadFile("level.dat") For Zeile=0 to 14 A$ = ReadLine(leveldatei) For Spalte=0 to 19 Level$(Zeile,Spalte) = Mid$(A$,Spalte+1,1) Next Next CloseFile leveldatei For Zeile=0 to 14 For Spalte=0 to 19 Select Level$(Zeile,Spalte) Case "_" DrawImageRect tiles, Spalte*32, Zeile*32, 36, 36, 32, 32 Case "1" DrawImageRect tiles, Spalte*32, Zeile*32, 70, 274, 32, 32 End Select Next Next |
Re: Spielfeld aus Textdatei laden
Ich hab mal den Text aus nem Edit genommen und dann in Farbflächen umgewandelt:
Delphi-Quellcode:
Anstelle der Rechtecke könntest du dann images entstehen lassen und dann mit dem Bild deiner Wahl anmalen. (Zum Lesen aus der Datei: assignfile, reset, readln, closefile)
procedure TForm1.Button1Click(Sender: TObject);
var i: integer; x,str: string; begin str:=edit1.Text; for i:=0 to length(str) do begin x:=copy(str,i,1); with form1.Canvas do begin if X= '1' then brush.Color:=clred; if X= '2' then brush.Color:=clgreen; FillRect(rect((i-1)*50,0,i*50,50)); end; end; Ich versteh deinen Code leider auch nicht :gruebel: , aber so kannst du es auch machen. |
Re: Spielfeld aus Textdatei laden
Delphi-Quellcode:
ich hoff das ist mal ein ansatz
procedure LevelLaden(datei: String);
var txt: Textfile; y: Integer; dummy: String; begin AssignFile(txt,datei); // Verknüpft eine Dateivariable mit einer Datei. Reset(txt); // Öffnet eine vorhandene !! Datei while not Eof(txt) do // solange das ende der datei nicht erreicht ist begin ReadLn(txt, dummy); // Zeile für zeile auslesen // for y := Low(dummy) to High(dummy) do // Korrektur!! for y := 1 to Length(dummy) do // so musses sein begin if dummy[y] = '1' then ..... ; // dummy[3] wäre das 3te zeichen... if dummy[y] = '_' then ..... ; end; end; end; (ungetestet natürlich ;-) ) stefan |
Re: Spielfeld aus Textdatei laden
Danke ! Es funktioniert ! Aber wie male ich in die "2. Reihe" ?
|
Re: Spielfeld aus Textdatei laden
@StefanDP : Delphi bringt die Fehlermeldung :
"HIGH kann nicht auf lange Stringtypen angewendet werden" |
Re: Spielfeld aus Textdatei laden
Zitat:
|
Re: Spielfeld aus Textdatei laden
Zitat:
es muss statt
Delphi-Quellcode:
heißen:
for y := Low(dummy) to High(dummy) do
Delphi-Quellcode:
for y := 1 to Length(dummy) do
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:55 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