タイマー

最終更新 : 2019/05/26

この記事では、とにかく出番の多い「タイマー」ガジェットを紹介します。
特に困る部分もないガジェットですが、最後にTIPSを載せておきます。

画像 黄色いアイコンの真ん中らへんです

ポートの確認

タイマー完了時の合図がパルスとシグナルの2パターン用意されているのが特徴的です。他のガジェットでも言えることですが、手直しメニューからでないとつなげないポートがあります。

| タイプ | 名称 | 説明 | | ---- | ---- |---- | | IN | タイマー開始 | スタートするために接続 | | IN | タイマーをリセット | 現在のカウントを初期値にリセット | | OUT | タイマー終了(パルス) | 完了したらパルスを送信 | | OUT | タイマーのアウトプット | タイマーの進み具合を送信(カウントアップなら0.00→1.00。カウントダウンなら1.00→0.00) | | OUT | タイマー終了(シグナル) | 完了したらシグナルを送信し続ける。シグナルを止めたければタイマーをリセットしましょう。 |

画像 ゲームを作るなら必須のガジェット

TIPS

タイマーをループさせる

教えてチップでもおなじみです。

「タイマー終了(パルス)」ポートと、「タイマーをリセット」ポートを接続します。ちょっとした機能を作る時のテストで活躍しますね。

「タイマー開始」ポートにワイヤーをつながなければ、ゲーム開始直後からループし続けます。

ワイヤーをつなぐ場合はタイマースタートを制御できますが、いざ開始したあとは、そのワイヤーにシグナルが流れ続けるようにしてください。タイマーは、初期状態およびリセット状態で「タイマー開始」にシグナルが流れるとスタートします。ループし続けたいなら、「タイマー開始」にシグナルを流し続けましょう。シグナルを流し続けたりストップしたり、といったことをやりたい時はカウンターガジェットの出番です。 (関連記事:ONとOFFを切り替える

「タイマーが動いている間」を検出したい

たとえば無敵時間のタイマーを10秒回したとしましょう。すると、この10秒間だけONになるシグナルがほしくなると思います。

「タイマーのアウトプット」ポートでもできなくはないですが、このポートのシグナルには強弱があります。さらにカウントアップ/ダウンで最後の値が変わります。このポートの本来の使い道としては、たとえばライトの電源に接続して、「だんだん」明るくしたり暗くしたりする時です。

画像 タイマーのアウトプットは、タイマーの「進行度」を利用するポート

タイマーが動いているならON、そうじゃないならOFFと切り替えたいなら、カウンターガジェットを使いましょう。「タイマーの開始」と同時にON、タイマー終了(パルス)でOFFです。 (関連記事:ONとOFFを切り替える

画像 カウンターは色んな場面で活躍します。

開始したタイマーをいったんストップして、途中から再開する

いわゆるストップウォッチです。方法を2つ紹介しますが、方法1が正解だと思います。

方法1

タイマーのタイプ「スピード」を使います。スピードモードがどういう機能かというと、タイマー開始のシグナルの強弱によって、タイマーの進むスピードが変わるというものです。シグナルが0.5ならタイマー完了まで2倍の時間がかかる、という動きをします。

重要なのは、シグナルが1なら普通のタイマーと変わらず動くということです。そしてシグナルが0なら一時停止してくれます。 カウンターと組み合わせれば一時停止用タイマーが簡単に作れます。

画像 完了のシグナルをタイマー開始インプットにつなげます

方法2

開始したタイマーは、電源をOFFにするとその時点のタイムを保持して止まってくれます。 そこから電源をONにすると、タイマーが再開します。

注意点は一番最初の「タイマー開始」です。当然ですが、電源ONになっていないとタイマー開始できません。ということで、「基本的に電源ON、例外的に電源OFF」という組み方がおすすめです。

画像 基本的に電源ONの例

裏技っぽい使い方だと思います。タイマーのタイプ「スピード」を使えない時に出番があるようなないような……。

とりあえず電源制御はON/OFFシグナルを使うように意識しましょう。 (関連記事:シグナルとパルス

電源オフのタイマーの値を表示したい

上述のタイマー電源オフを使わないなら、知らなくていいネタです。

タイマーの電源オフ中は「ゴールのタイム」や「現在のタイム」から値を取得できなくなります。たとえばナンバー表示マシンで表示しようとしても、「0」となります。これはどんなガジェットにも言えることで、電源がオフということはそのガジェットが死ぬということなので、アウトプットポートからは何も出てこなくなります。

電源オフのタイマーの「ゴールのタイム」を表示したい場合、電源オフにならないダミータイマーを用意して、ダミータイマーの「ゴールのタイム」を表示すればいいです。

電源オフのタイマーの「現在のタイム」を表示したい場合は、現在のタイムを変数に保存します。具体的には次のようにします。

  • 変数を用意します
  • 変数カスタマイザー(セット)を用意します。 アップデートのタイプは「電力オンの間」です
  • タイマーの「現在のタイム」アウトプットを変数カスタマイザー(セット)に接続します
  • タイマーの電源をオフにする時は、同じタイミングで変数カスタマイザー(セット)の電源もオフにします。これをやらないと結局「0」がセットされてしまいます
  • 変数カスタマイザー(ゲット)を用意します。これをナンバーディスプレイに接続すれば完了です

プロフィール

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