栞代わりの制作メモ

・ツクールやMMF2などで作ったモノや できるまで

MMF2メモ:セーブ画面のアイコン表示

MMF2では自由度が高い反面、何から何まで自作でつくることに
なります。
MMF2のWIKIを参考に (テクニック集/セーブファイルを作る より)
セーブ・ロードシステムを作りました。
過去セーブ画面20140207

セーブかロードか選択 → 数字を選択
(選択した数字にセーブロード)

でも、これだけじゃ、どのデータにセーブしたか
どのデータをロードしたかが分からない。
そこで下のようなアイコンを追加しました。
手に入れた魔法が表示されるシステムです。
セーブ画面20140207

以下、内部処理の話。
アイコンをどうやって、表示させてるかという話。
進行度の
変数A=ロードしたファイル
変数B=ロード処理用 
に使っています。

とりあえず、このメニューフレームが始まったときに
進行度の変数Aを1にする。

それと同時に変数Bを1にする。
まずはセーブデータのINIからデータを読み込む。
枠に茶色い■が入っているアイコンが進行度。
ロードアイコン20140207
それぞれのアイコンに読み込んだデータを入れておく。
イベント内容の4行目の処理は進行度の変数Aの値に対応した変数に数字を入れるという処理。
(値を選択 の右の方の"数式を使う”を使うと
この処理ができるようになる)

例えば、進行度の
変数A=0のとき、アイコンの変数Aに数字が代入される。
変数A=1のとき、アイコンの変数Bに数字が代入される
変数A=2のとき、アイコンの変数Cに数字が代入される
・・・

上のイベントで
変数B=1で、上半分のアイコンに代入し、変数Bに2を代入する。
続くイベントで
変数B=2で、下半分のアイコンに代入し、変数Bに3を代入する。
(処理的にはあんまり変わらないので割愛)

一度に全て代入してもいいのですが
後で見たときにわかりやすいかつ編集しやすいように分割しています。

で、ひととおりロードしたら
変数Aに1加算して、変数Bを1に戻す。
こうすることで 次のファイルにとりかかるわけだ。
それで変数Aがファイルの数だけやったら
変数A≧ファイルの数+1 のときに変数Bを0にして終了。

これで、各アイコンの変数に、ロードした数字が代入された。


次に、アイコンを表示する処理をつくる。
MMF2でグラフィックを変更する場合、
もっとも簡単な方法は、方向を変更することだと思う。
MMF2では方向が数値で代入できるので
変数の値を参照して、その値に応じて方向を変更できる。

セーブデータのカーソルがファイル1にあるときに
それぞれのアイコンの変数Bの値の方向を向く。
セーブデータのカーソルがファイル2にあるときに
それぞれのアイコンの変数Cの値の方向を向く。
セーブデータのカーソルがファイル3にあるときに
それぞれのアイコンの変数Dの値の方向を向く。

・・・といったようにこのイベントを8回繰り返してもいいのだが
同じ処理である以上、もう少しコンパクトにできないだろうか。
そして、思いついたのが次の手法である。

ロードアイコン20140207-2
"オブジェクトからデータを抽出"を選んで
アイコンを選択して 
"値" → "インデックスによる変数"を選ぶ。
> 値を入力 < に"オブジェクトからデータを抽出"
カーソルを選択、"値"から"変数B"を選ぶ。
ちなみに最後に8倍してるのは
方向の値が→=0 ↑=8 ←=16 ↓=24 になっているので
それに対応させるための処理。

インデックスによる変数(AltValN)は
変数の変数ができるよう。
アイコンの「カーソルの変数Bに入っている値に対応した」変数を
参照するということができる。
今回の場合の具体例をあげると
カーソルの変数B=0なら アイコンの変数Aが参照される。
カーソルの変数B=1なら アイコンの変数Bが参照される。
カーソルの変数B=2なら アイコンの変数Cが参照される。
・・・

このインデックスによる変数を一般化すると
こんな感じかな。

AltValN( "選択したオブジェクト", > 値を入力 <)
> 値を入力 < =0 なら 選択したオブジェクトの変数Aが出力。
> 値を入力 < =1 なら 選択したオブジェクトの変数Bが出力。
> 値を入力 < =2 なら 選択したオブジェクトの変数Cが出力。
・・・

とまあ、こういったイベントで
セーブ・ロードのデータファイルの中身を
アイコンで表示するということをやっています。

自分用でもあるけど、MMF2いじっていて
気づいたことはある程度日記にしていきたいと
思います。
不定期にはなると思います。

では、またどこかで。
関連記事
スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://jtrshiogawa.blog.fc2.com/tb.php/139-30cf6a8f
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad