Hi,
Ich bin mir nicht so sicher. Also es ist ja so, das es nicht darum geht den aktuelle Spielstand zu speichern oder zu laden, sondern nur die Spieldaten. Wie machen es denn andere Spiele.. z.B. Shooter.. Die ganzen Modells, Sprites etc.. Also wenn es wirklich viele Daten sind. Wann werden die geladen und wie werden sie verwaltet?
Also ich schreib mal nen kleinen Pseudocode hierhin, jetzt nicht mit Kreaturen/Autos sondern mit Gebieten.
Delphi-Quellcode:
var
Gebiete: TObjectlist;
TileList: TTileList; // TObjectlist
procedure BeiSpielStart;
begin
Gebiete.LoadFromFile('Gebiete.dat');
TileList.LoadFromFile('Tiles.dat');
end;
procedure TGebiet.DoEnter(Sender: TObject);
begin
LoadMap(Self.MapID);
end;
procedure TGebiet.LoadMap(ID: Integer);
var i: Integeger;
begin
// Map malen
for i:= 0 to Gebiete[ID].Tiles.Count-1 do
TileList[Gebiete[ID].Tiles[i].ID].Draw;
// Kreaturen drauf stellen
for i:= 0 to Gebiete[ID].Creatures.Count-1 do
with TCreature.Create(...) do
begin
Assign(Creatures[Gebiete[ID].Creatures[i].ID]);
x := Gebiete[ID].Creatures[i].x;
y := Gebiete[ID].Creatures[i].y;
end;
end;
So würde ich das bisher ungefähr machen. Aber ich weiß nicht ob mir das gefällt. Vor allem Zeilen wie:
TileList[Gebiete[ID].Tiles[i].ID].Draw;
sind mir ein Dorn im Auge und in der Praxis wird sowas eventuell noch schlimmer aussehn.