なんか作って載せます

今月(11月)も、続けていろいろやっていきます。第14弾。

開けてもそのうち復活する宝箱を作る【EV】



 一定時間経ったら復活する宝箱を作ってみます。
 どのくらいの時間を設定するかは、お好みで。


 必要なものは、宝箱のイベント1個だけです。

 1ページ目。
宝箱1ページ目

 2ページ目。
宝箱2ページ目

 まず、1ページ目で宝箱を調べると同時に、セルフ0にその時点のプレイ時間(システム変数29番)を代入しておきます。
 これを経過時間の基準とします。

 2ページ目に切り替わりますが、起動条件は「並列実行」で。

 最初に、1ページ目とは異なるセルフ変数(ここではセルフ1)にプレイ時間を代入します。
 そして、1ページ目でプレイ時間を代入したセルフ0と、このページで代入したセルフ1を引き算したものを、別のセルフ変数(ここではセルフ2)に入れます。
 こうすることにより、宝箱を開けた時からどのくらいの時間が経ったのかを取得することができます。

 今回は、復活までの時間を1分に設定しています。
 並列実行ですから、条件を満たすまでずっと、プレイ時間取得と比較を繰り返します。

 セルフ2が60になったら、宝箱を復活させます。
 このイベントの場合だと、セルフ9を0にすれば1ページ目に戻りますね。

 検証してみます。
挙動はOK

 宝箱を調べると、開いて2ページ目が起動します。
 左上に、ピクチャでセルフ2の値を表示しています。
 これが60になったら、宝箱はちゃんと閉じてくれました。
 もちろん、繰り返し起動させることもできました。成功です。

 ピクチャは検証のために表示させただけなので、実際に使う時は入れません。


 ここまでは、宝箱の挙動のみを解説しました。
 では、実際にアイテムを入手する処理を入れるにはどうするか。

 1ページ目で、宝箱を調べた時に入手処理を入れると、宝箱が開いていないのに入手できてしまい、不自然ですね。

 じゃあ2ページ目ならどうだとなりますが、2ページ目に入れると、アイテムを一瞬にして大量入手してしまいます。
 回数付きループは意味ありませんし、ラベルを入れるとちゃんと動いているように見えますが、ウェイトが必要(1フレームでOK)になるので、おそらく時間にわずかながらもズレが生じています。

 では、どうするか。

 こうします。
2ページ目はこれ。旧2ページ目は3ページ目に

 2ページ目に、これを自動実行として挟みます。
 そして、さっきの2ページ目を3ページ目に変更すれば、解決です。
 セルフ0は、1ページ目からこの2ページ目に移します。それと、起動条件のセルフ9の値にも注意。

 これで、比較的自然な感じでアイテムを入手できます。
 アイテム入手後にメッセージが出るようにした場合は、そのメッセージを閉じてからカウントが始まります。


 宝箱復活は、今回やった時間経過以外にも、場所移動した直後とか、ある場所に帰ったら、なんてのも可能です。
 重要なのは変数です。


 今回はこれで終わります。


2012/11/17/Sat 更新
2013/09/21/Sat 内容修正

inserted by FC2 system