ステージデザイナー・ヘルプファイル - チュートリアル

 保存機能をつかう
ステージデザイナーには、保存機能を実装するための支援機能があります。これを使えば、比較的簡単に
保存機能を実装することができます。

このチュートリアルは、前回のチュートリアルのファイルを利用します。前回までのファイルを持っていない方は、以下より
ダウンロードしてください。
(前回のチュートリアルを読んで、ファイルを作成していただいた方はダウンロードの必要はありません。)
Floppy.ico(1406 byte)プロジェクトファイル(チュートリアル11):ダウンロード

★このチュートリアルにそって作成したゲームのサンプルプロジェクトを、以下のリンクからダウンロードできます。
Floppy.ico(1406 byte)プロジェクトファイル:ダウンロード


 セーブ機能を実装してみる
ゲームを一時中断したあと、再開するには、どのような情報が必要でしょうか。
たとえば、セーブした時のマップや、プレイヤーの位置情報、HP、残機など、さまざまな情報を保存する
必要があります。

まずは、プレイヤーの位置情報だけを保存する機能を実装してみましょう。
共有データベースを編集します。
保存するアイテムとわかりやすいように、「保存」フォルダを作成し、
そのなかに「保存位置X」と「保存位置Y」整数値データアイテムを作成します。

「読み出し確認」データアイテムは、今回初めて使用する
「整数列挙値」データアイテムです。種別から「整数列挙値」を
選択して作成しましょう。
このデータアイテムは編集の必要があります。
(方法は後述します。)

作成した3つのデータアイテムすべてに、
「ゲーム保存時に値を保存」チェックボックスをマークしてください。
このチェックが今回のセーブ機能のカギになります。
tutsave_1.png(7227 byte)

つぎに、読み出し確認データアイテムを編集します。
作成した「読み出し確認」データアイテムを選択し、右図@部分をクリック
すると、「列挙値の編集」ウインドウが表示されます。
すでに「null」アイテムがありますので、これを選択した後(A部分)
編集ボタンを押し、名称を「読みだされていない」とします。

最後に、「値の追加」ボタン(B部分)を押し、
名称を「読みだされた」とし、値を「1」に設定します。

整数列挙値データアイテムは、このように、整数のリストを
作成することができるデータアイテムです。整数には名称を
つけることができ、データをわかりやすく管理することができます。

たとえばゲーム中の(スイッチが押された/押されていない)
といったフラグデータの管理などに有用です。
tutsave_2.png(33167 byte)
最後に、値を右画像のように「読み出されていない」に設定します。
これで共有データベース内のデータアイテムの編集は完了です。
tutsave_val.png(33167 byte)

bar.png(864 byte)
ここまできたら、いよいよセーブ機能を実装します。
まずは、テスト用に「セーブポイント」オブジェクトを作成します。
つぎに、保存ボタンとして「ほぞん」キーを登録してください。(キーは適当に割り当ててください。)
オブジェクトの大きさなどは適当に設定しましょう。

つぎに、作成したセーブポイントの「いずれかのキーが押されたとき」イベント開始条件を以下のように設定します。
tutsave_3.png(14813 byte)

以下に、イベントコマンドの場所とパラメータの設定方法を説明します。
tut10_f1.png(12361 byte)

行番号 内容
0 押されたキーが「ほぞん」であれば、次の処理を実行します。(上のイベント、行番号1〜6までの間の処理を実行)
【フロー制御→条件分岐セット→条件分岐】
1 指定した配置オブジェクト(今回はプレイヤー)のX位置を指定したデータアイテム
(今回は共有データアイテムの「保存位置X」)に代入します。
【データベース操作→指定配置オブジェクトをデータアイテムに代入】
条件分岐パラメータを次のように設定しましょう。画像1
2 指定した配置オブジェクト(今回はプレイヤー)のY位置を指定したデータアイテム
(今回は共有データアイテムの「保存位置Y」)に代入します。
【データベース操作→指定配置オブジェクトをデータアイテムに代入】
条件分岐パラメータを次のように設定しましょう。画像2
3 共有データベース内の「ゲーム保存時に値を保存」が設定されているデータアイテムの値を
外部ファイルに出力するイベントコマンドです。
【データベース操作→ファイル入出力→データベースの内容を保存する
パラメータを次のように設定しましょう。画像3
4 配置オブジェクトの色調を変更します。
【オブジェクト→表示→配置オブジェクトの色調を設定する
パラメータを次のように設定しましょう。画像4
5 指定時間イベントの実行を待機します。
【フロー制御→指定時間イベントを待機する
6 配置オブジェクトの色調を変更します。
【オブジェクト→表示→配置オブジェクトの色調を設定する
パラメータを次のように設定しましょう。画像5
7 条件分岐の終了地点
【フロー制御→条件分岐セット→条件分岐終了点】


このイベントは、プレイヤー「主人公」オブジェクトの位置を作成した共有データベースのデータアイテムに代入した後、
そのデータアイテムの中身を外部ファイルに出力するためのものです。

今回は、行番号3のコマンドが重要です。このコマンドによって、先ほど設定した「ゲーム保存時に値を保存」が有効な
共有データベース(ほかのデータベースは不可)内のデータアイテムを保存できます。
(すべての種別のデータアイテムが保存できるわけではありません。保存できるデータはデータアイテムの項を確認してください。)

これで、セーブ機能は実装できました。
このオブジェクトを、前回のチュートリアルで作成した「マップ1」の適当な場所に貼り付けます。

bar.png(864 byte)

これからロード機能の実装をしてみましょう。
前回のチュートリアルで作成した、「タイトルメニュー」オブジェクトの「いずれかのキーが押下されたとき」イベント開始条件に、
以下の画像のようにイベントコマンドを追加します。

tutsave_prog2.png(33646 byte)

追加した部分を以下で説明します。
行番号 内容
13 条件がいずれにも当てはまらないとき(この場合はメニューで「つづきから」が選択されたとき)に
ここからイベントコマンドを実行します。
【フロー制御→条件分岐セット→条件分岐(いずれにも当てはまらない場合)】
14 指定したデータベース保存ファイルを読み込み、共有データベースのデータアイテムの値を設定します。
【データベース操作→ファイル入出力→データベースの内容をファイルから読み出す
パラメータを次のように設定しましょう。画像1
15 データアイテムの値を変更します。
この場合、共有データベースの「読み出し確認」データアイテムの値を「読み出された」に設定します。
【データベース操作→データアイテムの値を変更する】
パラメータを次のように設定しましょう。画像2
16 マップを読み込む(読み込ませたいマップを設定してください。)
【ゲーム進行→マップを読み込む】
パラメータを次のように設定しましょう。画像3
※前回のチュートリアルで作成した、行番号12と設定内容は同じです。コピー&ペーストでもOK
17 条件分岐の終了地点
【フロー制御→条件分岐セット→条件分岐終了点】


追加したイベントでは、前回のチュートリアルで作成したタイトルメニューで「つづきから」が選択された時、
保存されたデータアイテムを読み込んでからマップを読み込むという作業をしています。


bar.png(864 byte)

ここまでで、保存した主人公の位置情報をデータアイテムに読み込ませることができました。あとは、この値を使って
主人公の位置を設定すればOKですね。

それでは、「セーブポイント」オブジェクトの「配置オブジェクト発生時」イベント開始条件に、以下のように
イベントコマンドを組んでみましょう。

tutsave_prog3.png(9634 byte)

以下に、イベントコマンドの場所とパラメータの設定方法を説明します。
行番号 内容
0 オブジェクトが重力の影響を受けないように設定します。
【オブジェクト→速度・モーション・重力系→重力の発生を設定する
イベントパラメータを設定し、重力を発生させない設定にしましょう。
1 共有データベース「読み出し確認」が「読みだされた」と一致していたら実行する条件分岐です。
【フロー制御→条件分岐セット→条件分岐】
イベントパラメータを次のように設定しましょう。画像1
2 配置オブジェクトの位置変更を行います。このとき、位置の値は共有データベースの
「保存位置X」「保存位置Y」を参照するように設定します。
【オブジェクト→位置指定→配置オブジェクトの配置位置を変更する】
イベントパラメータを次のように設定しましょう。画像2
3 条件分岐の終了地点
【フロー制御→条件分岐セット→条件分岐終了点】

このイベントでは、タイトルメニューで「つづきから」が選択されていた時には、主人公オブジェクトの位置を
データアイテムの値を参照して設定するようにしています。

ここまでのイベントをフローチャートっぽく書くとこんな感じです。
tutsave_flow1.png(22155 byte)


bar.png(864 byte)

ここまでの作業で、「ほぞん」キーで主人公の位置を保存して、そこからゲームを再開することができるようになりました。
しかし、保存した情報は主人公の位置のみであるので、たとえばゲーム再開したときにどのマップから
はじめたらいいのかわからない、というような問題があります。

このようなときは、どのマップから始めたらいいのか、という情報を格納するデータアイテムを用意し、そこに
マップに対応する数字などのデータを入れておき、保存できるようにします。
そして、つづきから始めるときは条件分岐を用いて読み込むマップを変えればよいのです。
(そのうち詳しく解説ができたらいいな、と考えています。)


bar.png(864 byte)

←チュートリアル11へ戻る  
←チュートリアルもくじへ戻る
←トップページへ戻る