2020/07/23 game maker studio におけるセーブ機能の実装など

 

■ ファイルが置かれる場所はここ!

C:\Users\Administrator\AppData\Local\Project名

 

■ どんなセーブ機能がほしいのか?

・セーブ方法

星のカービィのように、ステージをクリアしたらその時点での進行状態がセーブされる形式。

・ロード方法

ゲームを開始して、タイトル画面をボタン押下で進んだら、セーブデータセレクト画面に移動する。

セーブデータを選ぶと、進行状態に沿ったステージセレクト画面に移動する。

 

■ セーブに関する技術について

 

動画【Advanced Saving System in Game Maker Studio 2 GMWolf】でやっていること。

 

★★とりあえず、動画内でやっていることは一通り実装できた。 ★★

 

 

Scriptに、[instance_get_save]というScriptを用意して、次のことをさせる。

instance_get_save.gml

引数1(おそらくインスタンスID)をintstanceに格納。

objectにinstanceのobject_indexを格納する。

グローバル変数save_mapの?objectの要素をvar_arrayに格納する。

変数mapにds_map_create()の戻り値を格納する。(ds_mapを生成してそのindexをmapに格納している。)

mapの?"object_index"個目の要素にobjectを格納する。

 

for文で0からvar_arrayの長さまで次の処理を実行する。

各回の処理では以下のことを行う。

nameに、var_arrayのi番目の要素を入れ、

valueにはvariable_instance_getを利用して、引数1(おそらくインスタンスID)からのインスタンスIDとnameから得られた要素を入れる。

mapのname番目にvalueを格納する。

 

そして、mapをreturnする。