「連動エレベーター」をひとつのガジェットで

「連動エレベーター」をひとつのガジェットで

 今回は、前回の応用編です。前回どんなことをやったかは、こちらから復習をどうぞ。
 「乗ると降りる足場」が前回のテーマでしたが、今回は「その足場に連動して動く足場」を作ってみます。「足場」ばかりで書いている方もこんがらがってきたので、まずはサンプルFlashで動作を確認してみてください。

画面クリック:開始
カーソルキー左右:移動
X:ジャンプ

 片方の足場に乗っている間、その足場は地面にむかって下降します。それと同時に、もう一方の足場は上昇します。
 前回からの流れだと2個の足場ガジェットを用意することになりそうですが、せっかくなので1個のガジェットに整理してみました。同じガジェットを2つ並べたのがこのサンプルということになりますが、どういうしくみで同じガジェットが真逆の方向に動いているのか、くわしくはこの後の説明で。

 まずは前回からおなじみの動作プログラム「待機」をちょっと改造。
 もともとは〈上に乗られたら動作プログラム「下降」にチェンジ。それ以外は静止〉という機能の動作プログラムでした。
 今回は一緒にある[スイッチ]をいじることにします(画像)。名付けて「足場を動かす」。ストレートな名前ですね。
 おおざっぱに言ってしまうと、このスイッチの役目は〈足場を上昇させるかどうか判定する〉ことです。足場を上昇させる場合にはON、それ以外はOFFということですね。
 この動作プログラム「待機」の場合は、静止するための動作プログラムなので、「足場を動かす」はOFFにしておきます。

 ということで、いまの動作プログラム「待機」から「上昇」に切り替える条件も、スイッチがONになったら(画像)にします。
 逆に、動作プログラム「上昇」をやめる=「待機」に切り替わる条件はスイッチがOFFになったら(画像)ということになりますね。

 それではいつスイッチをONにするかを考えておきましょう。
 あらためてFlashの動作を見るとわかりますが、片方の足場が上昇するのは、もう一方の足場にプレイヤーキャラが乗ったときだけです。つまり具体的には動作プログラム「下降」でスイッチをONにします(右図)。この動作プログラムは前回でもおなじみ、特定の条件で切り替わるまで下方向に移動し続けるループですね。
 ここまでの説明だと「あれ? スイッチがONになったら上昇だったんじゃないの? 下降する動作プログラムなのにスイッチをONにしたらおかしくならない?」と感じるかもしれません。
 それというのも、さすがにさっきの説明がおおざっぱすぎたからです。ここからはもっと厳密に考え直しておきましょう。

 この動作プログラム「下降」では、わざとスイッチを無視しています。動作プログラムを切り替える条件にスイッチのON/OFFが入っていないんですね。なので、この動作プログラムに関しては、スイッチがONでもOFFでもかまわないわけです。
 逆に「待機」している足場なら、スイッチONが条件で「上昇」に切り替わるのはさっき見たとおり。
 これを考え合わせると、〈ある足場が下降する=スイッチONになる=他の足場は上昇する〉ということになります。同じガジェットを並べているのに下降と上昇がセットで起きるのは、こういう原理です。

 となると、必要な場面ではスイッチをOFFにしなければいけません。
 動作プログラム「下降」中に、条件「足元に壁がある」で動作プログラムは「地面に着いた」に切り替わりますが(画像)、地面についている足場はこれ以上動かないのがわかっているので切り替えと同時にスイッチもOFFにしておきます(画像)
 下降中の足場から降りるということは動作プログラム「待機」に切り替わるということですが(画像)、ここでもやっぱりスイッチはOFFになります。
 つまり〈ある足場が下降をやめる=スイッチOFFになる=他の足場も上昇をやめる〉ということになりますね。

 ここまでのサンプルが入ったgpdファイルのダウンロードはこちらから。

利用方法

ダウンロードしたファイルは圧縮されていますので、各種解凍ソフトをお使いになって解凍してください。
解凍したフォルダ内にある、拡張子が“gpd”のファイルがアクションゲームツクールのプロジェクトデータです。このファイルを、プロジェクトデータを収めているフォルダ(デフォルトでは[マイ ドキュメント](Windows Vistaでは[ドキュメント])→[ACTkoolData])に入れ、アクションゲームツクールの[続きから]で読み込んでご利用ください。
※データのご利用前に、エディターを最新版にアップデートしておいてください。(アップデートプログラムはこちら

サンプルデータに関するご注意

このサンプルデータはスマイルブームが独自に制作したものです。
データについてのお問い合わせは、スマイルブームの担当メールアドレス(下記)宛にお願いいたします。
tkoolsupport@smileboom.com

交信なう