今回はNintendo Switchから大好評発売中の「ナビつき!つくってわかる はじめてゲームプログラミング(以下はじプロと略します)」から、「二段ジャンプ」の作り方を公開していきます。
何が起きているかを理解しやすくするために、動画ではキーポイントとなる部分のプログラミングの数値をカウンターノードンで「見える化」してあります。
今回の解説は、前に投稿した「空中連続ジャンプ」の応用に当たります。もし空中連続ジャンプのプログラミングのやり方が分からないという方は、先に多段ジャンプの投稿を読むことをオススメします。
-
パパと子どものはじめてゲームプログラミング 「空中連続ジャンプ」を作ろう!
今回はNintendo Switchから大好評発売中の「ナビつき!つくってわかる はじめてゲームプログラミング(以下はじプロと略します)」から、「空中連続ジャンプ」の作り方を公開していきます。 ナビつ ...
続きを見る
では始めて行きましょう!
今までの投稿はこちらへ
-
パパと子どもの「はじめてゲームプログラミング」のまとめ
2021年6月11日にNintendo Switchで発売された「ナビつき!つくってわかる はじめてゲームプログラミング(以下、はじプロと略します)」の話をしようと思います。 ナビつき! つくってわか ...
続きを見る
目次
はじめに「二段ジャンプ」とは?どういう考え方でプログラミングする?
二段ジャンプとは「1回ジャンプしている途中に、空中でもう1回ジャンプすること」です。
ただプログラミングするためには、もう一歩深く二段ジャンプについて考える必要があります。
つまり、
・1回ジャンプしている途中に、空中でもう1回ジャンプできる
・空中でもう1回ジャンプした後は、一度地面に下りるまではジャンプできない
これが両立できて、はじめて二段ジャンプのプログラムが成立するということです。
プログラミング的には空中で何度でもジャンプできる「多段ジャンプ」の方が単純です。二段ジャンプの場合、3回目のジャンプをできないようにしなければいけない点がやや難しいポイントになります。
それでどういう作戦でプログラミングしていくかですが、このような手順で考えていくと良いです。
二段ジャンプの完成までの道のり
1.ジャンプの回数をカウントできるようにし、ジャンプボタンを1回押した時を認識できるようにする
2.着地でジャンプ回数をリセットできるようにする
3.2回目のジャンプの時だけ「空中連続ジャンプ」できるようにする
今回は、まずはじめに答えを示してから別々に解説していこうと思います。
ジャンプの回数をカウントできるようにし、ジャンプボタンを1回押した時を認識できるようにする
まず、ジャンプボタンをカウンターノードンにつなぎます、そして、定数ノードン(1を入力)とカウンターノードンをくらべるノードン(=)で比較することで、ジャンプボタンを1回押した時のみ、ワイヤーループBに1.0が入力されるプログラムが出来ました。
ジャンプボタンを何度も押してみると、1回目の時のみワイヤーループに1.0が入力されますが、2回目以降は1.0の入力が消えるということですから、これでジャンプボタン(ここではBにしています)を1回押した時を認識できるようになった、と言えますね。
着地でジャンプ回数をリセットできるようにプログラミングする
次に地面に着地したときに、ジャンプ回数をリセットできるようにします。
このプログラムがなぜ必要かというと、先ほどのプログラムだけだと、仮にジャンプの1回目を認識することができて、めでたく空中で二段ジャンプができたとしても、地面に着地したときにジャンプの回数のカウンターはすでに「2」になっているので、次の二段ジャンプをしようとしても先ほどプログラムしたジャンプの1回目を認識する、ということが出来なくなってしまうんですよね。
だから、1回地面に着地したら、一度ジャンプの回数をリセットする必要があるわけです。
ジャンプの回数が0回になれば、また1回目のジャンプを認識するプログラムが働くことができますよね!
それでは作っていきましょう。まずは、モノでつくった足場に、さわっているセンサーノードンをくっつけてヒトノードンを認識できるようにしましょう。これで足場にヒトノードンがいる時に、ワイヤーループWに1.0を入力するプログラムが出来ました。
ちなみにさわっているセンサーの設定はこちらになります。
ワイヤーループWで飛ばした入力を、先ほどのカウンターノードンのリセットの所につないでやります。
これでジャンプした後、足場に着地すると、ジャンプ中に何度ジャンプボタンを押していようが、カウンターノードンで数えているジャンプの回数がリセットされるようになりました。
これで2度目、3度目の二段ジャンプができるベースのプログラムが完成しましたね!
2回目のジャンプの時だけ「空中連続ジャンプ」できるようにプログラミングする
最後に2回目のジャンプの時だけ「空中連続ジャンプ」できるようにプログラミングします。
1回目のジャンプが終わった時 かつ 再度ジャンプボタンが押されたとき に「空中連続ジャンプ」できるようにすればよいので、ここはANDノードンの出番です。このようにすれば完成です。
念のため、モノを発射するノードン、モノをこわすノードンの設定も載せます。
繰り返しになりますが、ここのワイヤーループBは1回目のジャンプの後のみ入力が入っている状態になります。だから2回目のジャンプボタンが押されたときにANDノードンが働き、モノを発射するノードンが動きます。さらにジャンプボタンにタイマーノードンをつないで、わずかに時差を作りモノをこわすノードンが発動するようにプログラミングしています。
このあたり「どういう仕組みで空中連続ジャンプさせてるの???」な方は、以前の投稿をご覧ください。
-
パパと子どものはじめてゲームプログラミング 「空中連続ジャンプ」を作ろう!
今回はNintendo Switchから大好評発売中の「ナビつき!つくってわかる はじめてゲームプログラミング(以下はじプロと略します)」から、「空中連続ジャンプ」の作り方を公開していきます。 ナビつ ...
続きを見る
そして「二段ジャンプ」の完成へ!
これで「二段ジャンプ」の完成です!
はじめに、床のセンサーノードン、モノを発射するノードン、モノをこわすノードンが見える状態の動画をお示しします。
そして最後に床のセンサーノードン、モノを発射するノードン、モノをこわすノードンが見えない状態にした完成動画をお示しします。
ようやく、二段ジャンプの完成ですね~。
この方法だと床のさわっているセンサーが常に必要なのですが、今のはじプロの環境ではノードンやワイヤーの数の上限があるため、大きなサイズのゲームを作る時には、今回の方法でプログラミングすることがメモリの無駄遣いになるかもしれませんね。
まとめ
最後に、思考の過程を整理してみようと思います。
1.ジャンプの回数をカウントできるようにし、ジャンプボタンを1回押した時を認識できるようにする
2.着地でジャンプ回数をリセットできるようにする
3.2回目のジャンプの時だけ「空中連続ジャンプ」できるようにする
というような手順で「二段ジャンプ」を作ってみました!
はじプロは、子どもと楽しみながらゲームを作ることができるだけではなく、ゲーム作りを通じて論理的な考え方・問題解決能力を育てることができそうですね!
以上となります。