Einzelnen Beitrag anzeigen

Benutzerbild von Seniman
Seniman

Registriert seit: 15. Sep 2003
Ort: Münster
98 Beiträge
 
#6

Re: Das Laden eines Levels dauert zu lange

  Alt 17. Jan 2004, 18:39
Hallo ISAS,

das mit dem Laden und Speichern könnte so funktionieren:

Erst brauchst du einen Datentyp, der alle Informationen enthält, die ein Level/eine Karte braucht. z.B. so:

Delphi-Quellcode:
type
  TLevel = record
    Kachel: Array [1..500,1..500] of Integer; //Hier sind die Nummern der einzelnen Kacheln des Hintergrunds!!
    Autor: String[100];
    Beschreibung: String[100];
  end;
Es gibt allerdings eine Einschränkung: Es dürfen keine dynamischen Arrays und keine Strings ohne Begrenzung vorkommen.

Zum Laden und Speichern machst du folgendes:

Delphi-Quellcode:
function LevelLaden(Dateiname: String):TLevel;
var Datei: File of TLevel;
begin
AssignFile(Datei,Dateiname);
if FileExists(Dateiname) then
  begin
    Reset(Datei);
    Read(Datei,Result);
    CloseFile(Datei);
  end
else
  begin
    //falls Datei nicht existiert.
  end;
end;

Procedure LevelSpeichern(Level: TLevel;Dateiname: String);
var Datei: File of TLevel;
begin
AssignFile(Datei,Dateiname);
ReWrite(Datei);
Write(Datei,Level);
CloseFile(Datei);
end;
Was die einzelnen Befehle (AssighnFile, Reset, Read, Write und Closefile) bringen liest du am besten in der OH nach.
Nun kannst du einen Leveleditor schreiben und dort Levels bauen. Diese kannst du dann mit "LevelSpeichern" speichern und dann im Spiel mit "Levelladen" laden.
Ich hoffe, das hilft dir weiter!

Grüße
Seniman
  Mit Zitat antworten Zitat