ONとOFFを切り替える

最終更新 : 2019/05/13

今回のテーマはONとOFFのフラグを切り替えることです。

ゲームを作ろうとする時、たとえば「カギを持っている/持っていない」とか、「ボスを倒した/倒していない」という風に、2つの処理を分岐させることが多いと思います。これらの分岐は「条件を満たしている(ON)、満たしていない(OFF)」というイメージをすると作りやすいです。

Dreamsでのやり方はいろいろあるので好きに作って良いのですが、私が簡単だと思える方法を紹介します。

「カウンター」ガジェット

画像 黄色の左側。簡単便利なガジェットです。

  • カウントアップ/ダウンするガジェット。目標値に達したかどうかを検出できる
  • 目標値に達している間、シグナルを送信し続ける

カウンターを使って、目標値に達していなければOFF、達したならONとして扱います。デフォルトの目標値は1ですので、設置すればすぐに0/1のフラグとして使えます。

フラグオンにしたいならカウントアップ、フラグオフにしたいならカウンタリセットです。

オンの場合の処理は「カウント完了」アウトプットからやりたい処理にワイヤーをつなぎます。

オフの場合の処理は「カウント完了」アウトプットから「NOTゲート」を経由して、やりたい処理にワイヤーをつなぎます。

画像 イメージ図

画像はあくまでイメージです。たとえば「ONの間実行する処理」から、カウンタリセットまでワイヤーを引っ張ることもあるでしょう。なんならカウンタリセットしないケースもあるでしょう。

カウント完了のシグナルは、カウンタリセットや電源OFFされない限り送信され続けることを意識して使いましょう。

小ネタ:同じシグナルでON/OFFを切り替える

1回目のシグナルでONになって、2回目のシグナルでOFFになる、という仕掛けを作ってみましょう。この場合、カウンターガジェットとカルキュレーターガジェットを使うと簡単です。

  • カウンターの目標値を2にする
  • カウンターが完了したらリセットする
  • カルキュレーターを通して、 進捗度が0.5ならONとする( 現在の値が1 かどうかを判定してもOK)

画像 例)△ボタンを1回押すとON、2回押すとOFFになる

FPSなんかで立ち状態としゃがみ状態を切り替えるような時にはこの形がそのまま使えます。

プロフィール

溟犬一六(めいけんいちろ)。雑種のクリエイター。ハンドル名はガバチョなど