Level speichern und laden B. Kühnast Im letzten Monat war das Gerüst für ein einfaches Spiel, daß nur auf Levels basiert, die einen Bildschirm groß sind. Diesmal geht es um die Grundlagen zum Speichern und laden dieser Level. Zuerst muß der Level natürlich erstellt werden. Das kann man über ein kleines Basic-Programm erledigen, oder man schreibt einen Editor zu dem Spiel (meistens sehr empfehlenswert). Wenn der Level auf dem Bildschirm steht, kann man ihn entweder in eine Variable speichern oder auf Diskette. Vorher benötigt man natürlich die Adresse des Bildschirms. Man ermittelt sie mit SCR = DPEEK(88). Ein Bildschirm in Modus 0 oder 12 hat 960 Zeichen. Der Befehl MOVE SCR,ADR(A$),960 Speichert den Level in der Variablen A$. Wenn diese groß genug ist, kann sie natürlich auch mehrere Level aufnehmen. 8 gleichzeitig sollten kein Problem sein. Mit OPEN #1,8,0,"D:LEVEL.1" BPUT #1,SCR,960 CLOSE #1 wird der Level unter dem Dateinamen LEVEL.1 auf der Diskette gespeichert. Zurücklesen geschieht mit dem BGET-Befehl. Das Lesen und Schreiben der Level ist also sehr einfach. Die letzte Frage ist nur, wann man mit Variablen und wann man mit Dateien arbeitet. Da die Entscheidung von Fall zu Fall verschieden ist, hier ein kurzer Überblick: VARIABLE Vorteil: Schneller Aufbau des Levels, hervorragend für Cassetten-Spiele, Datenträger (Disk/Cassette) wird nur am Anfang benötigt. 5Nachteil: Eingeschränkter Platz. Wenn das Spiel zu viele Level hat, passen sie nicht auf einmal in den Speicher. DISK Vorteil: Fast beliebig viele Level, eingeschränkt durch den Platz auf der Diskette und im Directory (Maximal 64 Einträge!) Nachteil: Benötigt Zeit zum Nachladen, um eventuelle Abstürze zu vermeiden, muß man eigentlich die Disk vor jedem Zugriff prüfen. Im Zweifelsfall kann man die beiden Methoden aber auch kombinieren, indem man die Level zu Gruppen zusammenfasst. CU!