naja, ich weiß zwar nicht was ein Stream für einen Vorteil hat, aber das erscheint mir einleuchtend. Ich hab mich auch noch nicht wirklich mit Streams befasst
aber ich denke mal, das wird nicht allzu schwierig.
Zu deinem Code:
- Erstmal gefällt er mir
- erst Y dann X, das erscheint mir einleuchtend, da man es bei einem Textfile genauso macht, also erst der Zeilenindex und dann die Zeichennummer.
- die idee, das collide mit in das Tile zu nehmen erescheint mir zwar praktisch, allerdings hätte ich dann diese information zweimal, also im TopLayer und im GroundLayer, aber 14(Breite)*10(Höhe) = 140 Bits, also 18 Bytes pro Map sind ja nicht die Welt und allzu Komplex (Wasser, Portale, etc.) wird das ganze nicht werden, also kann ich das auch aus dem TopLayer ablesen(Objekt = nicht gehen können, kein Objekt = gehen können)
Delphi-Quellcode:
memstream.write(TileSetH,4); //<-- gehört das nicht dazu? oder kann man das später irgendwie anhand der
memstream.write(TileSetW,4); //streamgröße rausfinden? nicht, dass später die Zeilen zu früh/spät "abgehackt" werden
for i := 0 to 1 do
for y := 0 to TilesetH-1 do
for x := 0 to TilesetW-1 do
memstream.write(Map[i][y][x],sizeof(tTile));
- warum schreibt die ganze Welt eigentlich
x := sizeOf(Integer);
wenn man doch auch einfach
x := 4;
schreiben könnte oder irre ich mich da etwa?