Master.typeX 2022/03/22 20:35

GMS2:技術的備忘録・バッファファイル編

どうも、Master.typeXです。
久しぶりの備忘録ですが何があったかというと
GMS2のDiscord鯖で
セーブファイルの保存方法が云々書かれてて
チートされるのは困るなと思い
最初はini→jsonへ変えようかなと思ったら

いつの間にかバッファーに手を出していた。

バッファーは曰く、処理が早いらしく
チートもされにくいっぽい。
が、jsonもだがコレまた未知の技術。
なのでこうして備忘録をつけることに。

まだまだ未開の技術なので間違ってたらゴメンナサイ。

buffer_create

たぶん最初にバッファーを設定するものだと思う。
使い方はこんな感じ。

buff = buffer_create(16384,buffer_fixed,2);

最初の数字の部分はバッファサイズ。
サイズ感はよくわからんが
ここに記述したサイズより大きいものは
保存できないらしい。
やっぱりわからん。

buffer_fixedはバッファの型らしい。
とりあえずわからんがここではbuffer_fixedにしとく。

最後の数値はバッファアライメントなるものだが
これもよくわからん。

というか最初の時点でわからんばかりでこの先大丈夫なのか。

バッファの保存

書き方としては

buffer_seek(buff,buffer_seek_start, 0);
buffer_write(buff,buffer_s16,data);
buffer_save(buff,"buffersave.sav");

と言った感じで書くらしい。

buffer_seekはバッファの読み込み開始だと思う。
1つめの部分はbuffer_createで作ったバッファ。
2つ目はよくわからんが読み込み方だと思う。
3つ目はこれまたよくわからん。

buffer_writeはバッファへの書き込み命令。
1つめの部分は先程と同じbuffer_createで作ったバッファ。
2つ目はバッファの型だがbuffer_createとは違う様子。
3つ目は保存したい数値。

buffer_saveはバッファファイルそのものの保存。
1つめの部分はbuffer_createで作ったバッファ。
2つめの部分はファイル名。ここがポイント。
iniと違って独自の拡張子で
保存が可能というところが大きく違う。

これがバッファの利点でもあり欠点。
ちゃんと保存できてるのかテキストエディタとかで
確認ができないのが難点。

バッファの読み込み

バッファの読み込みは

buff = buffer_load("buffersave.sav");
data = buffer_read(buff,buffer_s16);
buffer_delete(buff);
buff = -1;

といった感じらしい。
buffer_loadはその名の通りバッファファイルの読み込み。

buffer_readはバッファファイル内の
おそらく同名変数の読み込み。
カッコ内は型だが、注意点として
保存時と同じ型を指定しないと
正しく読み込めないらしい。

そして不要なバッファはbuffer_deleteで削除する。
という形らしい。-1はなんか公式マニュアルで
そうしてくれみたいな書き方があったので。


とまあ、こんな感じで。
前述の通りまだ未開の技術なので
ほんと間違えていたらスマンとです。

ルールがよくわかってないので
なかなか難しいぞこれ・・・
でも習得しとかないとマズイ案件なので
ちゃんと覚えるぞ・・・

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事を検索