Den Game Maker benutzen
Dateien
Es ist nützlich externe Dateien in Spielen zu verwenden. Du kannst z.B. eine Datei machen, die beschreibt, wann etwas bestimmtes passiert. Du kannst auch Informationen speichern, die beim nächsten Starten des Spieles verwendet werden (beispielsweise den aktuellen Raum). Die folgenden Funktionen kann man zu Verarbeiten von Textdateien nutzen:file_text_open_read(fname) Öffnet die angegebene Datei zum Lesen. Die Funktion gibt die ID der Datei zurück, welche für die anderen Funktionen gebraucht wird. Du kannst mehrere Dateien gleichzeitig öffnen (maximal 32). Vergesse nicht sie nach dem Verarbeiten zu schließen.
file_text_open_write(fname) Öffnet die angegebene Datei zum Schreiben, erstellt sie, falls sie nicht existiert. Die Funktion gibt die ID der Datei zurück, welche für die anderen Funktionen gebraucht wird.
file_text_open_append(fname) Öffnet die angegebene Datei zum Anfügen von Daten am Ende, erstellt sie, falls sie nicht existiert. Die Funktion gibt die ID der Datei zurück, welche für die anderen Funktionen gebraucht wird.
file_text_close(fileid) Schließt die Datei mit der gegebenen ID.
file_text_write_string(fileid, str) Schreibt einen String in die Datei mit der gegebenen ID.
file_text_write_real(fileid, x) Schreibt eine reelle Zahl in die Datei mit der gegebenen ID.
file_text_writeln(fileid) Schreibt ein "Neue-Zeile"-Zeichen in die Datei mit der gegebenen ID.
file_text_read_string(fileid) Liest einen String aus der Datei mit der gegebenen ID und gibt diesen zurück. Ein String endet am "Neue-Zeile"-Zeichen.
file_text_read_real(fileid) Liest eine reelle Zahl und gibt diese zurück.
file_text_readln(fileid) Überspringt den Rest der Zeile und beginnt in der nächsten.
file_text_eof(fileid) Gibt an, ob wir das Dateiende erreicht haben.
Um Dateien im Dateisystem zu ändern kannst du folgende Funktionen nutzen:
file_exists(fname) Gibt zurück, ob die Datei mit dem angegebenen Namen existiert (true) oder nicht (false).
file_delete(fname) Löscht die Datei mit dem angegebenen Namen.
file_rename(oldname, newname) Benennt die Datei mit dem Namen oldname in newname.
file_copy(fname, newname) Kopiert die Datei namens fname in newname.
directory_exists(dname) Gibt zurück, ob das angegebene Verzeichnis existiert oder nicht.
directory_create(dname) Erstellt ein Verzeichnis mit dem angegebenen Namen (inklusive dem Pfad), falls es nicht existiert.
file_find_first(mask, attr) Gibt den Namen der ersten Datei zurück, die mit der Maske und den Attributen übereinstimmt. Existiert keine solche Datei, wird ein Leerstring zurückgegeben. Die Maske kann einen Pfad und Auslassungszeichen enthalten, z.B. "C:\Temp\*.doc". Die Attribute geben die zusätzlichen Dateien an. (Die normalen Dateien werden also immer zurückgegeben, wenn sie mit der Maske übereinstimmen). Folgende Konstanten können als Attribute verwendet werden:
fa_readonly schreibgeschützte Dateienfile_find_next() Gibt den Namen der nächsten Datei zurück, die mit der vorher angegebenen Maske und den Attributen übereinstimmt. Existiert keine solche Datei, wird ein Leerstring zurückgegeben
fa_hidden versteckte Dateien
fa_sysfile Systemdateien
fa_volumeid Volume-ID Dateien
fa_directory Verzeichnisse
fa_archive archivierte Dateien
file_find_close() Muss nach allen file_find-Funktionen aufgerufen werden, um Speicher freizugeben.
file_attributes(fname, attr) Gibt zurück, ob die Datei alle Attribute hat, die in attr angegeben sind. Benutze Kombinationen der oben angegebenen Konstanten.
Die folgenden Funktionen können genutzt werden um Dateinamen zu verarbeiten. Beachte das sie nicht mit den Dateien sondern nur mit dem Namen arbeiten.
filename_name(fname) Gibt den Namen der Datei mit Erweiterung aber ohne Pfad wieder.
filename_path(fname) Gibt den Pfad der Datei inklusive des finalen Backslashs zurück.
filename_dir(fname) Gibt das Verzeichnis der Datei zurück, welches normalerweise der Pfad ohne den finalen Backslash ist.
filename_drive(fname) Gibt das Laufwerk der Datei zurück.
filename_ext(fname) Gibt die Dateierweiterung wieder, inklusive des Punktes.
filename_change_ext(fname, newext) Gibt den angegebenen Dateinamen, mit der Erweiterung an (inklusive des Punktes), welche zu einer neuen Erweiterung verändert wurde. Indem ein leerer string angegeben wird kann die Erweiterung gelöscht werden.
In seltenen Fällen kann es sein, das du Daten aus einer binären Datei lesen musst. Die folgenden Low-Level-Routinen existieren hierfür:
file_bin_open(fname, mod) Öffnet die Datei mit dem angegebenen Namen. Der Modus gibt an, was mit der Datei getan werden kann: 0 = lesen, 1 = schreiben, 2 = beides). Die Funktion gibt die ID zurück, welche für andere Funktionen benötigt wird. Du kannst mehrere Dateien auf einmal öffnen (maximal 32). Vergesse nicht sie zu schliessen wenn du mit ihnen fertig bist!
file_bin_rewrite(fileid) Schreibt die Datei mit der angegebenen ID neu, d.h. löscht sie und beginnt am Anfang.
file_bin_close(fileid) Schliesst die Datei mit der angegebenen ID.
file_bin_size(fileid) Gibt die Dateigrösse (in Byte) der Datei mit der angegebenen ID wieder.
file_bin_position(fileid) Gibt die aktuelle Position (in Bytes; 0 ist die erste Position) in der angegebenen Datei ID zurück.
file_bin_seek(fileid, pos) Bewegt den Dateizeiger an die neue angegebene Position. Um etwas anzufügen, fahre den Dateizeiger auf den Wert der Dateigröße.
file_bin_write_byte(fileid, byte) Schreibt ein binäres Byte in die Datei mit der ID fileid.
file_bin_read_byte(fileid) Liest ein binäres Byte aus der Datei mit der ID fileid.
Wenn der Spieler in seinen Einstellungen den sicheren Modus aktiviert hat, sind einige dieser Routinen eingeschränkt, es ist dir nicht erlaubt einen Pfad anzugeben, so das nur Dateien im Programmordner geschrieben werden können.
Die folgenden drei nur-lesbaren Variablen können dir nützlich werden:
game_id* Eindeutige ID deines Spieles. Du kannst diese nutzen, um z.B. einen einmaligen Dateinamen zu erstellen.
working_directory* Arbeitsverzeichnis deines Spieles. (ohne den finalen Backslash.)
temp_directory* Temporäres Verzeichnis deines Spieles. Du kannst hier temporär Dateien speichern. Sie werden am Spielende entfernt.
Manchmal möchtest du vielleicht dem Spieler die Möglichkeit geben, dem Spiel Kommandozeilenargumente zu übergeben (z.B. für Cheats oder spezielle Modi). Um diese Argumente zu bekommen, kannst du diese zwei Funktionen verwenden:
parameter_count() Gibt die Anzahl der Kommandozeilenparameter zurück (Achtung: der Name des Programmes ist auch einer davon)
parameter_string(n) Gibt Kommandozeilenparameter n zurück. Der erste Parameter (der Programmname) hat den Index 0.
Du kannst Umgebungsvariablen mit folgender Funktion lesen:
environment_get_variable(name) Gibt den Wert der Umgebungsvariablen mit dem gegebenen Namen zurück (als String).
Alternative Versionen
Auch verfügbar in:
Download helpfile