[はじめてゲームプログラミング] Bダッシュの作り方
任天堂Switchの「ナビつき! つくってわかる はじめてゲームプログラミング」
のBダッシュの作り方についての説明です。
Bダッシュとは、マリオなどでBボタンを押しながら右を押すと、移動速度が速くなる仕組みのことです。
スティックノードン(左右)、ヒトノードン、計算ノードンを使用し、Bダッシュの仕組みを説明していきます。
左右のスティックノードンと、ヒトノードンのおさらい
まずは、左右のスティックノードンとヒトノードンの左右の入力ポートについて、おさらいしていきます。Bダッシュの仕組みに関係してくるところなので、この2点の仕組みを理解すると、Bダッシュの作成方法が見えてきます
ヒトの左右の入力ポートの入力値によって移動速度が変わる
左右のスティックとヒトノードンの左右を接続すると、ヒトの左右の入力ポートに1または-1が渡されるので、通常の速度となります。
この入力ポートに入力する値を大きくすることで移動速度を速くすることができます。
ヒトの左右の入力ポートの許容値は、-2〜2
左右の入力ポートの許容値は、-2.00〜2.00ですので、通常の速度に比べると2倍の速度になります。
Bダッシュの仕組み
それではBダッシュの仕組みを整理していきます。
Bボタンを押す押さないで、ヒトの左右の入力値を変更するようにする
Bダッシュの仕組みは、Bボタンを押す場合、押さない場合で、ヒトの左右の入力ポートに入力される値を変えることで、移動速度を速くすることができます。
[1]. Bボタン押下する場合は移動速度が速い2、押下しない場合は通常速度の1とする
まずは、Bボタン押下によって出力値を1と2を切り替えたいので、ボタンノードンの0または1と、定数1を足し、出力値1と2を切り替えるロジックを作ります。
Bボタン押下する場合は移動速度が速い2を出力し、押下しない場合は通常速度の1を出力するようにします。
[2]. Bボタンを押下しない場合は通常速度の1を左右スティックに掛ける
上記でBボタンを押下しない場合は通常速度の1を出力するようにしたため、左右のスティックノードンに、この通常速度の1を掛けた結果をヒトノードンの左右の入力ポートに接続します。
1を掛けるので従来の左右スティックの出力値と同じとなります。
(左右スティックと、ヒトノードンの左右の入力ポートを直接接続した場合と同じ)
[3]. Bボタンを押下する場合は移動速度が速い2を左右スティックに掛ける
一方、Bボタン押下する場合は移動速度が速い2を出力するようにしたため、左右のスティックノードンに、2を掛けた結果をヒトノードンの左右の入力ポートに接続することによって、従来の左右スティックの出力値の2倍となるため、移動速度も2となり速くなります。
[4]. まとめると、[1]のボタンの押す押さないの出力値 × 左右スティックとなる
上記までの内容を整理すると、[1]のボタンの押す押さないの出力値は1か2で、[2][3]の処理は、1か2を左右のスティックに掛ける処理なので、
[1]のボタンの押す押さないの出力値 × 左右スティック
となります。
ボタンと、左右スティックの動作の組み合わせの処理結果
Bダッシュの作り方
A.ボタン(Bボタン)
<設定値>
ボタン:B
B.定数(速度を+1するための定数)
<設定値>
いくつ出力する?:1
C.計算(Bボタンに+1して加速させる)
<設定値>
けいさん方法:+
<入力ポート>
入力1:A.ボタンの出力と接続
入力2:B.定数の出力と接続
D.スティック(左右)
<設定値>
はんのうする方向:左右
どっちのスティック?:L
E.計算(+1したBボタン×左右スティック)
<設定値>
けいさん方法:×
<入力ポート>
入力1:C.計算の出力と接続
入力2:D.スティックの出力と接続
F.ヒトノードン(左右の入力ポート)
<入力ポート>
左右:E.計算の出力と接続
おわりに
最後まで読んで頂きありがとうございます!
みんな大好きBダッシュの説明は以上となります。
シンプルなロジックですが、簡単な足し算と掛け算の組み合わせで実装できるところがプログラムっぽく結構好きなロジックです!
Bダッシュは簡単に実装できるので、もし良かったら是非作ってみてください!