トリガーエディターと共に散りぬ

ゲームに関する、日本語の記事が出回ってなさそうな小ネタなど

ミニライツアウト

少し前に作ったギミックのソースコードを紹介します。

トリガーエディター1つで出来て省コスト!

 

youtu.be

レバーを操作して、

おじさん3人が同時に動いた状態にすることができたらクリアとなります。

 

ただし、レバーを動かした位置に対応するおじさんと、その隣のおじさんの動きが

「動いてたら止まる」「止まってたら動き出す」という法則で変化するので

ガチャガチャやってもクリアできませんよ!

 

全体像はこんな感じです。

f:id:ms2messer:20190725210029j:plain

おじさんの動き反転を使いまわして省スペース化するのがミソです。

 ※追記:画像は、startが開始位置になっていません!正しくはstartから開始です

 

以下、細かく見ていきます。

f:id:ms2messer:20190725202558j:plain

このステートから開始です。初期設定をしています。

(On Enterに別のギミック用の設定を入れ込んでいたので消しました。

 気にしないで下さい。)

ワインおじさんを3体並べていますが、全員動かない状態から始めると

真ん中のレバーを押しただけで終わってしまうので

両端のワインおじさんを動かして置き、クリアに数手かかるようにしています。

 

 

f:id:ms2messer:20190725202747j:plain

店舗用ガラス自動ドア、および金庫入り口は、クリア時に開くドアになります。

クリア前は当然閉まっているべきなのでOFFにします。

 

また、このステートがレバー操作の待ち受けステートになります。

レバーは3つ置いてあり、何れかのレバーがONになったら次のステートに移動します。

なお、レバーはONによって次のステートに飛べればいいだけなので、

レバー自体は即OFFに戻しています。

 

 

f:id:ms2messer:20190725202953j:plain

これは、左のレバーがONになったときに飛んでくるステートです。

257001は一番左のワインおじさんです。

おじさんがOFFならONに、おじさんがONならOFFにし、

次のステートにいきます。

 

f:id:ms2messer:20190725203147j:plain

続けて、真ん中のワイン(257002)おじさんがOFFならONに、

ONならOFFにします。

newState7(正解判定)に飛びます。

 

※newState4はありません

というかそもそもnewStateとかじゃなくてちゃんと名前つけろよっていう・・・

 

f:id:ms2messer:20190725203331j:plain

こちらは、一番右のレバーが押されたときに飛んでくるステートです。

一番右のおじさん(257003)がOFFならONに、ONならOFFにします。

newState3に飛びます。

newState3は前述の通り、真ん中のおじさんの動きを反転するステートです。

 

 

 

f:id:ms2messer:20190725203634j:plain

こちらは、真ん中のレバーを操作したときに飛んでくるステートです。

右のおじさんの動きを反転させています。

その後、newState2(=左のおじさんの動きを反転)に飛びます。

 

 

 

ここまでをまとめると、

左のレバーを押したら、左のおじさん→真ん中のおじさんの動きを反転。

右のレバーをおしたら、右→真ん中のおじさんを反転。

まんなかのレバーを押したら、右→左→真ん中のおじさんの動きを反転。

 

この時、

左→真ん中

右→真ん中 の真ん中部分と、

左→真ん中

右→左→真ん中 の左→真ん中部分はまったく同じなので、使いまわすことができます。

 

 

各おじさん動き反転処理後、newState7に飛びます。

これは正解判定処理になります

f:id:ms2messer:20190725203226j:plain

左のおじさんは動いているか?動いていたらnewState8へ

動いていなかったらnewState1へ(レバー待ち受けへ)

 

f:id:ms2messer:20190725210526j:plain

真ん中のおじさんは動いているか?

 

f:id:ms2messer:20190725210630j:plain

右のおじさんは動いているか?

 

f:id:ms2messer:20190725210654j:plain

見事、すべてのおじさんが動いていたら正解処理です。

ドアを開けて、

全てのおじさんの動きをいったんOFFにします。

その後startへ。初期状態に戻して次の人が遊べるようにします。

 

ちなみにこの時はドアオープンのタイマーを作っていなかったので、

通れなくはありませんがドアが割とすぐ閉じてしまいますw

空きスペースに多少のタイマーを仕込んでもよかったかもしれません。 

 

 

ちなみに、ドアを2個隣接しておくと

手動でこじ開けようとしても奥のドアが選択できずに開けることができません。

なので正解するまで先に進めない仕組みとなります。

ドア2個置き、おすすめです!

 

 

 

長々と解説しましたが、参考になりましたでしょうか?

丸パクリで同じものを実装していただいてもかまいませんので、

是非遊んでみてくださいね!