Datenaufbau Basisdaten/Datenlayer
Alle Daten werden in einem Memoryblock gespeichert (Bank in BlitzBasic). Alle Daten stehen hintereinander aufgereiht - wie in der unteren Tabelle zu sehen. Beachte, dass Datentiefe 4, 8, 12 oder 16 Bit betragen kann.

OffsetByteBeschreibung
Tiefe*1TiefeWert 1
Tiefe*2TiefeWert 2
...


Lesezugriff erfolgt über folgende Formel. Der ermittelte Wert 'value' kennzeichnet Framenummer im Tileset. Wert 0 kennzeichnet immer ein unsichtbares Tile.

Datentiefe 4 Bit
offset = ((y*sizex+x)/2)
mode = ((y*sizex+x) And 1)*4
value = (PeekByte(bank,offset) Shr mode) And 15

Datentiefe 8 Bit
offset = y*sizex+x
value = PeekByte(bank,offset)

Datentiefe 12 Bit
offset = ((y*sizex+x)*3)/2
mode = ((y*sizex+x) And 1)*4
value = (PeekShort(bank,offset) Shr mode) And 4095

Datentiefe 16 Bit
offset = (y*sizex+x)*2
value = PeekShort(bank,offset)

Animationen
Der Map Editor wurde designt, um möglichst kompakte Karten zu erzeugen. Ein Layer kann bereits ab einer Layertiefe von nur 4 Bit erzeugt werden. Somit könnte ein Tile den Wert 0-15 speichern. Wie werden da aber Infos über Animationen in so kompakten Daten gespeichert?

Wenn ein Tile/Bildobjekt den Wert 0 hat, dann wird es nicht gezeichnet - diese Stelle erscheint transparent.

Alle Werte über 0 geben die Framenummer im Tileset an.

Wenn nun 2 Animationen benutzt werden, dann werden alle Werte veschoben. Wert 1 und Wert 2 kennzeichnen nun Animation 1 und 2. Ab Wert 3 werden wieder normale Frames beschrieben.

Wie man sieht, sind die Daten "dynamisch" aufgebaut - je mehr Animationen benutzt werden, desto weiter rutschen Frame-Werte nach hinten. Das untere Bild demonstriert es (grün=transparent, rot=Animation, grau=Frame):