クールタイムや自動回復的なのを作る【はじめてゲームプログラミング】

はじプロでクールタイムと自動回復的なのを作っていきます。

機能的にどちらも似ているので一緒にしました。

用意するもの

  • カウンター
  • NOT
  • AND
  • 定数(タイマーで代用可)
  • ボタン(必要なら)

繋ぎ方

f:id:sadala:20211014122956p:plain

 

定数をカウンターの減らすにつなぐ

f:id:sadala:20211014123044p:plain

f:id:sadala:20211014123111p:plain定数ノードン(値は1でいい)を使ってカウンターの値が0になるまで減らし続けます。

カウンターの設定を「はんい制限」で「0~1000」にし、スタート時のカウントを適当に決めます。

定数ノードンが1の場合、カウントは1フレーム(60フレームで1秒)で1減るので、300に設定するとクールタイムが5秒です。

カウンターからNOT、ANDとつなぐ

f:id:sadala:20211014123405p:plain

カウンターの出力をNOTの入力へ、そのままNOTの出力をANDの入力1へ繋ぎます。

ANDの入力2には、ボタンの出力を繋ぎましょう。このボタンはスキルなどを発動するときに使うボタンです。自動で発動させたい場合などは、このボタンを置き換えてください。

※ボタンの設定は「押した瞬間」

ANDノードンの出力がスキル発動のトリガー

f:id:sadala:20211014123432p:plain

カウンターが0(つまりクールタイムを消費している状態)のとき、ボタンを押すとANDノードンが出力します。

エフェクトノードンや効果音ノードンを使って、実際にスキルが発動することを確認しましょう。

カウンターをリセットする

f:id:sadala:20211014123503p:plain

このままでは1度クールタイムを消費すると、何度でもスキルを発動できてしまいます。

なのでANDノードンが出力したタイミングでカウンターをリセットしてやりましょう。

完成?

機能的には完成しているのですが、クールタイムがゲーム中にわからないのは不親切なので、一応見えるようにしておきたいですよね。

f:id:sadala:20211014123544p:plain

f:id:sadala:20211014124818p:plain

というわけで、カウンターの出力をマッピングノードンに繋ぎます。

入力はんいを「0~カウンターの初期値」、出力はんいを0~360、「反転」に設定。

さらに円柱-ヒンジ-直方体(先:中央)-テクスチャ(適当に1色で塗りつぶす)とれんけつします。

マッピングの出力をヒンジれんけつの入力に、NOTの出力をテクスチャの入力につないで準備完了。

さっそく確認しにいきましょう。

f:id:sadala:20211014124601p:plain

時計っぽいかな?

円状で溜まっていく感じは思いつかなかったです......。

のばせるモノノードンなんかも使えそうですね。

 

自動回復に変えてみる

f:id:sadala:20211014123746p:plain

f:id:sadala:20211014123806p:plainカウンターの入力を減らすに繋いでいたのを、増やすに繋ぎ変えます。

その際カウンターの範囲を制限するのを忘れずに。

次に、NOTノードンをくらべるノードンに置き換えてスキルを発動できる条件を変更しましょう。

例えば「カウンターの値が50以上なら、スキルを発動できる」ならこんな感じ。

f:id:sadala:20211014123850p:plain

MP消費っぽくする

f:id:sadala:20211014123919p:plain

ANDノードンの出力の先にマッピングノードンを挟み、カウンターのリセットに繋いでいたワイヤーを減らすに繋ぎます。

これでスキルを発動するときに、マッピングノードンで設定した値だけカウンターの値を消費するようにできます。