脱出ゲーム(Flashゲーム)のセーブ機能が作れたお!


やっっっっとできたよ!全人類の憧れのセーブが!
Flashゲームの作り方や脱出ゲームの作り方は色んなサイトに載ってるのに、セーブの作り方を載せてるサイトはほぼ皆無でした。
唯一と言っていいサイトが以前あったのですが、infoseekの無料版が10月31日で終わったため、消えてしまいました…。
というわけで、ここで紹介しておきます。
果たして見てくれる人はいるのでしょうか。

 

・今回は「脱出ゲームで洗面器というアイテムを取り、それを取ったかどうかを保存する」を例にして紹介します。
・グレーの部分は好きな名前に変えて使ってください。
ここで説明するActionScriptのバージョンは1.0か2.0です。
・ここで説明するスクリプトはすべてタイムラインに書きます。



 
まず下準備として以下を書きます。
------------------------------------------------------------------
var save = new Object();
var save = SharedObject.getLocal("escapeGame");
------------------------------------------------------------------
好きな名前のObjectクラスを作って、それをSharedObject.getLocalにすると、パソコン内に値を保存できる場所ができるみたいです。
今回は「save」という名前にしました。このあと何回も使います。
「escapeGame」の部分の名前はここでしか出てこないので、そんなに気にしなくてもいい…はず。



次にはセーブボタンを押したときの処理、すなわちセーブの動作を書きます。
 
------------------------------------------------------------------
__root.save.data.getSenmenki =  _root.getSenmenki;
------------------------------------------------------------------

さっき作った好きな名前のSharedObjectのあとに「data」と書くと、dataの右側には好きな名前の変数を設定でき、同時にパソコンの中に値を保存します。
↑これは、セーブデータ内の「getSenmenki」(洗面器というアイテムを取ったかどうかをtrue/falseで表す)を、Flash内の「getSenmenki」と同じにする、
つまり、これがセーブをするということです。

…セーブはこれで完了です。意外と簡単ですね。
あとはいろいろ応用すれば実用的なセーブ機能になると思います。
たとえばdata内に配列(Array)を作ってアイテムをまとめて管理したり…。
おっと、ロードも説明しなきゃ。

 ------------------------------------------------------------------
_root.getSenmenki = _root.save.data.getSenmenki;
------------------------------------------------------------------
さっきのセーブ行為が逆になっただけです。Flashの方をセーブデータに合わせます。

♦おまけ

閃光絵巻~Flashアニメ・ゲーム製作記