Création de jeux avec Game Maker
Fichiers
Il est souvent utile d'utiliser des fichiers externes dans les jeux. Par exemple, vous pourriez vouloir créer un fichier décrivant à quels moments certaines choses doivent se passer dans votre jeu. Vous pourriez également souhaiter sauvegarder des informations qui seront utilisées lors d'une prochaine exécution du jeu (par exemple, sauvegarde de la room courante). Les fonctions suivantes permettent de lire et d'écrire des données dans les fichiers de type texte :
file_text_open_read(fname) Ouvre en lecture le fichier de nom fname. La fonction retourne l'id du fichier qui devra être ensuite utilisé dans les autres fonctions. Il vous est possible d'ouvrir plusieurs fichiers en même temps (32 au maximum). N'oubliez pas de fermer les fichiers dès que vous n'en avez plus besoin.
file_text_open_write(fname) Ouvre en écriture le fichier de nom fname, créant ce dernier si celui-ci n'existe pas déjà. La fonction retourne l'id du fichier créé qui devra ensuite être utilisé dans les autres fonctions.
file_text_open_append(fname) Ouvre en mode ajout le fichier de nom fname, créant ce dernier si celui-ci n'existe pas déjà. La fonction retourne l'id du fichier qui devra ensuite être utilisé dans les autres fonctions.
file_text_close(fileid) Ferme le fichier d'id fileid.
file_text_write_string(fileid, str) Ecrit la chaîne str dans le fichier d'id fileid.
file_text_write_real(fileid, x) Ecrit le nombre réel x dans le fichier d'id fileid.
file_text_writeln(fileid) Ecrit un caractère newline (passage à la ligne suivante) dans le fichier d'id fileid.
file_text_read_string(fileid) Lit une chaîne à partir du fichier d'id fileid puis retourne la chaîne lue.
file_text_read_real(fileid) Lit un nombre réel à partir du fichier d'id fileid puis retourne la valeur lue.
file_text_readln(fileid) Saute le reste de la ligne courante du fichier d'id fileid puis se place au début de la ligne suivante.
file_text_eof(fileid) Indique si l'on a atteint la fin du fichier.
Vous pouvez utiliser les fonctions suivantes pour manipuler les fichiers du système d'exploitation :
file_exists(fname) Indique si le fichier de nom fname existe (true) ou pas (false).
file_delete(fname) Supprime le fichier fname.
file_rename(oldname, newname) Renomme le fichier oldname en newname.
file_copy(fname, newname) Copie le fichier fname dans un nouveau fichier de nom newname.
directory_exists(dname) Retourne si le répertoire indiqué dname existe.
directory_create(dname) Crée le répertoire dname (avec le chemin complet) si ce dernier n'existe pas déjà.
file_find_first(mask, attr) Retourne le nom du premier fichier satisfaisant le filtre mask et les attributs attr. Une chaîne vide sera retournée si la recherche n'a pas abouti. Le filtre mask peut contenir le nom d'un chemin mais aussi des caractères jokers comme par exemple 'C:\temp\*.doc'. Les attributs vous permettent de fournir les fichiers supplémentaires que vous souhaitez voir (les fichiers 'normaux' seront toujours retournés s'ils satisfont le masque). Vous pouvez utiliser les constantes suivantes afin de rechercher le type de fichiers souhaité :
fa_readonly fichiers en lecture seulefile_find_next() Retourne le nom du prochain fichier satisfaisant le masque et les attributs précédemment fournis. Une chaîne vide sera retournée si aucun fichier n'a été trouvé.
fa_hidden fichiers cachés
fa_sysfile fichiers systèmes
fa_volumeid fichier d'id de volumes
fa_directory répertoires
fa_archive fichiers archives
file_find_close() Afin de libérer de la mémoire, cette commande doit être invoquée après manipulation des fichiers.
file_attributes(fname, attr) Indique si le fichier vérifie tous les attributs attr. Vous pouvez utiliser toute combinaison de constantes vues précédemment.
Les fonctions suivantes peuvent être utilisées pour modifier les noms de fichiers. Veuillez noter que ces fonctions ne fonctionnent pas directement avec les fichiers mais uniquement par le biais de chaînes de caractères.
filename_name(fname) Retourne le nom du fichier indiqué, avec l'extension mais sans le chemin.
filename_path(fname) Retourne le chemin du nom de fichier indiqué, y compris le caractère backslash de fin de chemin.
filename_dir(fname) Retourne le nom de répertoire du nom de fichier indiqué, ce qui normalement est identique au chemin sans le caractère backslash de fin de chemin.
filename_drive(fname) Retourne des informations sur le lecteur où est enregistré le fichier de nom fname.
filename_ext(fname) Retourne l'extension du nom de fichier indiqué, y compris le point séparateur.
filename_change_ext(fname, newext) Retourne le nom de fichier indiqué, avec l'extension (incluant le point) avec ajout de la nouvelle extension newext. En utilisant une chaîne vide comme nouvelle extension, il vous est ainsi possible de supprimer l'extension.
Dans de rares situations, vous voudrez lire des données à partir de fichiers binaires. Les routines suivantes de bas niveau sont réservées à cet usage :
file_bin_open(fname, mod) Ouvre le fichier binaire fname. Le paramétre mode indique les actions possibles sur ce fichier (0 = lecture, 1 = écriture, 2 = lecture et écriture). La fonction retourne l'id du fichier devant être utilisé dans les autres fonctions. Vous pouvez ouvrir plusieurs fichiers en même temps (32 au maximum). N'oubliez pas de fermer les fichiers dès que vous n'en avez plus besoin.
file_bin_rewrite(fileid) Réinitialise le fichier d'id fileid, c'est à dire l'efface puis recommence à écrire depuis le début.
file_bin_close(fileid) Ferme le fichier d'id fileid.
file_bin_size(fileid) Retourne la taille (en octets) du fichier d'id fileid.
file_bin_position(fileid) Retourne la position courante (en octets; 0 correspond à la première position) dans le fichier d'id fileid.
file_bin_seek(fileid, pos) Déplace le pointeur courant du fichier à la position indiquée. Pour écrire en fin de fichier, déplacez le pointeur en fin de fichier en utilisant la taille de ce dernier avant d'écrire.
file_bin_write_byte(fileid, byte) Ecrit un octet de données dans le fichier d'id fileid.
file_bin_read_byte(fileid) Lit un octet de données à partir du fichier puis retourne cette valeur.
Si le joueur a sélectionné le mode secure (mode sécurisé) dans ses préférences, pour de nombreuse routines, il ne sera pas possible d'indiquer un chemin. Seuls les fichiers du répertoire du jeu pourront être modifiés.
Les trois fonctions suivantes peuvent être utilisées pour des opérations de lecture seule :
game_id* Correspond à l'identificateur unique du jeu. Cela peut vous être utile si vous souhaitez disposer d'un nom de fichier unique.
working_directory* Il s'agit ici du répertoire de travail du jeu (working directory) (ne comprend pas le caractère backslash de fin de chemin).
temp_directory* Répertoire temporaire créé pour le jeu. Vous pouvez y stocker temporairement des fichiers. Les fichiers de ce répertoire seront supprimés à la fin du jeu.
Dans certaines situations, vous désirerez donner aux joueurs la possibilité de fournir des arguments sous forme de ligne de commandes pour le jeu avec lequel ils jouent (par exemple afin de créer des cheats (astuces de jeu) ou encore des modes spéciaux). Les deux routines suivantes permettent d'exploiter ces arguments.
parameter_count() Retourne le nombre de paramétres de la ligne de commandes (le nom du programme constituant l'un de ces paramétres).
parameter_string(n) Retourne les n paramétres de la ligne de commandes. Le premier paramétre correspond à l'index 0. C'est le nom du programme.
Vous pouvez lire le contenu des variables d'environnement en utilisant la fonction suivante :
environment_get_variable(name) Retourne la valeur (sous forme de chaîne de caractères) de la variable d'environnement de nom name.
<< Traduction française par Philippe Ragni - (2005) >>
Alternative versions
Also available in:
Download helpfile