So, Willkommen zu einen weiteren kleinen Tutorial von -> hmm... mir

Heute will ich euch zeigen, wie man eine simple Map erstellt mit
DATA und es mit
RESTORE läd!
Sinn und Zweck von dieser Methode ist es, ohne externe Dateien simple Maps erstellen zu können.
Wie immer rede ich
nicht um den heißen Brei und komm gleich zur Sache

Zuerst brauchen wir ein kleines Bildchen/Sprite:
// Wandsprite
DRAWRECT 0,0,32,32, RGB(0xc8, 0xc8, 0xc8)
DRAWRECT 2,2,30,30, RGB(0x7d, 0x7d, 0x7d)
DRAWRECT 2,2,28,28, RGB(0xf3, 0xf3, 0xf3)
GRABSPRITE 1, 0,0,32,32 // Spritenummer 1
LOCAL TileX = 32 // Spritebreite
LOCAL TileY = 32 // Spritehöhe
Das Ergebnis ist ein Kachelartitiges Sprite, das wir super für unsere kleine Testmap benutzen können!
So jetzt brauchen wir noch ein Map-array:
GLOBAL map[]
DIM map[20][15]
Nun kommt der Trick an der ganzen Sache ( Bin mir sicher, dass manche den Befehl noch garnicht kennen

).
Die Mapdaten angeben:
STARTDATA map1:
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,1
DATA 1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1
DATA 1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
ENDDATA
Da wir jetzt die Mapdaten haben, müssen wir diese natürlich beim Start des Programmes/Spieles auslesen:
( ABER VORSICHT( is cool man

)! : Man
MUSS in X-Richtung auslesen, so ergibt sich folgender Code:
RESTORE map1
FOR y = 0 TO 14
FOR x = 0 TO 19
READ map[x][y] // Daten in der Map speichern!
NEXT
NEXT
Hmm, nu?
Ich gehe mal davon aus, das jeder weiss wie man eine Map anzeigt aus einem Array... oder?
Hier mal der ganze Code:
DRAWRECT 0,0,32,32, RGB(0xc8, 0xc8, 0xc8)
DRAWRECT 2,2,30,30, RGB(0x7d, 0x7d, 0x7d)
DRAWRECT 2,2,28,28, RGB(0xf3, 0xf3, 0xf3)
GRABSPRITE 1, 0,0,32,32
LOCAL TileX = 32
LOCAL TileY = 32
GLOBAL map[]
DIM map[20][15]
RESTORE map1
FOR y = 0 TO 14
FOR x = 0 TO 19
READ map[x][y]
NEXT
NEXT
WHILE TRUE
FOR x = 0 TO 19
FOR y = 0 TO 14
SELECT map[x][y]
CASE 0
// Draw nothing!
CASE 1
// Zeichne die Kachel an Position x * Kachelbreite, y * Kachelhöhe
DRAWSPRITE 1,x*TileX,y*TileY
ENDSELECT
NEXT
NEXT
SHOWSCREEN
WEND
END
STARTDATA map1:
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,1
DATA 1,0,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,1
DATA 1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
DATA 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
ENDDATA
Hoffe ihr könnt damit was anfangen, wenn nicht, dann einfach überlesen
