hanigura
2022/07/26 (火) 01:07:55
おお、すごい情報・・・
返事遅くなりすみません、ありがとうございます。
file_text_open_readはそういえばセーブデータの管理に使っていました。
最初からファイルを置くことは無理だと思っていましたがインストーラーを作ることで出来るんですね。
参考にさせていただきます。
通報 ...
最終的に、やっぱりインストーラーより実行ファイルが良い!となったので以下のように落ち着きました。
フォルダにdatファイルを並べてdatafilesフォルダに入れておき、以下のコードでビルド前に以下のコードのworking_directoryとprogram_directoryを入れ替えることで正しく動く…というやり方です。(exeファイルより深い階層であれば良かったので、フォルダを作れることが分かっただけで解決する話でした)
test_game.exe
└system
└scroll_player.dat
file_text_open_readで読み込むときは、working_directory等を付けなくても読み込むことが可能です。
▼マニュアル working_directoryについて
https://manual.yoyogames.com/GameMaker_Language/GML_Reference/File_Handling/File_Directories/working_directory.htm
で読み込めます。
file_text_open_read実行時には、ゲームの実行ファイルのある場所が基準となりますので、事項ファイルのある場所以下のパスを入れることで読み込むことができます。デバッグ時も変わらないはずです。
上にあった、appdata等からも読み込むことができますが、優先順位があります。
file_text_open_readなどで読み込む際には、ファイルが存在するか?読み込めるか調べて無かった場合、順位が下のファイルが存在するか?読み込めるかを調べていくようです。
1.「%localappdata%<ゲーム名>」or「%appdata%<ゲーム名>」のパス以下
2.ゲームの実行パス以下
ビルド前に
を有効化する必要もないと思います。
なら、実行ファイルのある場所以下systemフォルダのscroll_player.datを読み込めます。
datafilesに入れたフォルダやファイルは、exeのある場所にそのまま配置されるので、デバッグ時でもプログラムを変える必要はないと思います。デバッグ時もexeが出来たときと同じように読み書きできます。
datafiles(インクルードファイル)
└system
└scroll_player.dat
で実行ファイルを作成するとファイルの配置は
test_game.exe
└system
└scroll_player.dat
となります。
マニュアルのFile Systemページにファイルの仕組みが解説されていますので参考にしてみてください。
https://manual.yoyogames.com/Additional_Information/The_File_System.htm