はじめてゲームプログラミング

パパと子どものはじめてゲームプログラミング 「Bダッシュ」を作ろう!

今回はNintendo Switchから大好評発売中の「ナビつき!つくってわかる はじめてゲームプログラミング(以下はじプロと略します)」から、「Bダッシュ」の作り方を公開していきます。

このゲームをやる上で、答えをただ示すことは実は面白さは半減してしまうと思います。

私と子どもとの”試行錯誤”の生の過程(間違いも含めて)を示していくことで、はじめてゲームプログラミングの「ノードン」たちのことを、もっともっと深く理解することが出来ると思います。

ちなみに、何が起きているかを理解しやすくするために、動画ではヒトノードンに最終的に入力されている数値をカウンターノードンで「見える化」しています。

 

では始めて行きましょう!

今までの投稿はこちらへ

CHECK
パパと子どもの「はじめてゲームプログラミング」のまとめ

2021年6月11日にNintendo Switchで発売された「ナビつき!つくってわかる はじめてゲームプログラミング(以下、はじプロと略します)」の話をしようと思います。 ナビつき! つくってわか ...

続きを見る

 

はじめに「Bダッシュ」とは?

Bダッシュとは、マリオブラザーズの時代からあるゲームのテクニックですね。このページを読んでくれるような方には説明はいらないような気がしますが…念のため。

Bダッシュ(ビーダッシュ)は、コンピュータゲームのコントローラの特定のボタンを押しながら移動することで、通常よりも速い「ダッシュ」状態で移動できること、およびその操作を表す。

wikipediaより

ただスピーディに動けるだけではなくて、Bダッシュ中にジャンプすることでジャンプの最高到達点が高くなったり、Bダッシュ中にジャンプする事でジャンプの飛距離が延びたりするため、Bダッシュによりゲームのアクション性がよりアップします

※ただしBダッシュ中のジャンプの高さを上げるのは、はじプロでは別でプログラミングする必要があります( ノД`)シクシク…

 

「Bダッシュ」ボタンをLスティックにつなげるだけではダメな理由

お父さん、Bダッシュが作りたいんだけどさ~、全然うまくできないんだよ。手伝ってくれない?
おお、いいよ。どれどれ。まずどうやって作ったのか見せてよ

 

 

Bボタン押したら左右に早く動くんだから、Bボタンをたし算すればいいんじゃないかって思ってやってみたんだ~
おー考えてプログラミングしてるね!すごい! それで、変な動きってどういう事?
なんかBボタン押すだけで動き出すし、速かったり、遅かったりするんだよ!
???(わけがわからない・・・)とりあえず1回みてみようか!

 

 

(たしかにBボタン押すだけで動き出すし、速かったり、遅かったりする)・・・

 

ちょっと訳が分からないから、まずはLスティックだけの動きを見てみよう

解説:

はじプロの世界では、右側がX軸のプラス方向、左側がX軸のマイナス方向になっています。

ヒトノードンの左右ににLスティックをつないでいた場合、

Lスティックを右に倒すと「+1」という入力がされ、ヒトは右に1のパワーで走ります。

逆にLスティックを左に倒すと「-1」と入力がされ、ヒトは左に1のパワーで走ります。

何も入力されていない=言い換えれば0が入力されているとき、ヒトノードンは動きません。

 

…なるほど。Bボタンは押すと+1の入力になるから、直接つなぐと、Bボタンを押すだけで右に走って行ったんだ。Bボタンを押してLスティックを右に倒すと1+1=2でダッシュで走るけど、Bボタンを押してLスティックを左に倒すと1-1=0で動かなくなったんだね!
そうだったんだ…。なんか良く分からないって思ってたけど、それくらいのたし算ならわかる!

 

どうすれば「Bダッシュ」を作ることができるか、改めて考えてみよう

じゃあさ、Bダッシュって数字で考えたらどういうものを作ればいいんだろう。考えてみよう。
うーん…。右にいくとき2だったら倍のスピードだったんだから、左に行くときは-2が出ればいいんでしょ?
そうそう!そういうこと。もうちょっと詳しく言うと、

Bボタンを押してLスティックを右に倒した時は2がでて

Bボタンを押してLスティックを左に倒した時には-2が出るようにしたい。

さらにいえば、Bボタンを押してヒトノードンが動いてしまったら困るわけだから、

Bボタンを押した時は0になっていないといけないわけだ

 

え~~、Yボタンって1しかでないんでしょ?Lスティックも-1とか1しかでないし・・・わかんねー
・・・うーん。。仕方ないなぁ、ヒントをだそうか。「たし算」じゃなくて、「かけ算」を使うんだよ
かけ算!?そのノードンなら知ってるよ。こうやってやるんでしょ~

 

 

こりゃなまた、素直につないだね~。。。うーん、ひとまずこれで何が起こるか見てみよう
うんうん!これでBダッシュできるね!!

 

かけ算だけでも、まだ「Bダッシュ」はできない そのカギは「マッピングノードン」

 

 

・・・Bボタン押してないと動かないし、全然速いスピードにならない・・・
これは何が起きてるんだろうか。考えてみよう!
Bボタンを押してない時は…0だから、、、0に何をかけても0! ・・・だから動かないのか!
そうそう、そういうこと!Bボタンを押しているときは、どうなってるかって言うと…

Bボタンを押しているときは常にBボタンから1が出ていて、それをLスティックから出てくる数字にかけ算してるから、結局入力は変わらないってことだよね。つまりBボタンを押してるときは、ただ普通にLスティックだけ動かしている動きになってるわけだ

じゃあどうしたらいいの~~!Bダッシュ難しすぎ!! わかんね~!パパ、教えてよ!!

 

…仕方ないな~~。だからさ、Bボタンを押していない時は普通に動かしたいんだからBボタンからは1が出てれば良くて、Bボタンを押したときにはBボタンから2が出るようにすればいいんじゃないの?そうすれば、Lスティックからの数字が×2になるからBダッシュできるはず
だってさ~Bボタンは0か1しか出ないってパパ言ってたじゃん!それを1とか2とかできないでしょ!!
いやいやいや…この前数値をへんかんするノードン覚えたって言ってたじゃん
へんかん・・・あ!!マッピングノードンだっ!!!
そう!マッピングノードン!これでBダッシュまで行きつけるはずだよ!

 

そしてBダッシュの完成へ!

これをこーして・・・できた!

 

 

マッピングの中身は調整した??
こういうことでしょ?

 

 

うんうん、これで上手く動くんじゃないかな?
やったー!!ついにBダッシュの完成だーー!!

 

 

解説:

Lスティックから出てくる数字は-1~+1です。

Bボタンから出てくる数字は普通は0 か +1のところを、マッピングノードンで変換して+1 か +2が出るように調整しています。

+1はBボタンを押していない時、+2はBボタンを押している時なので、

Lスティックの入力×Bボタンの入力をすると、

Bボタンを押していない時は、Lスティックからは-1~+1の入力が、Bボタンを押しているときは、Lスティックからは-2~+2の入力がでることになります。これで「Bダッシュ」が完成したことになります。

 

まとめ

最後に、思考の過程を整理してみようと思います。

・そもそもLスティックを動かすことは、はじめてゲームプログラミングの世界ではどういう数字で表現されているのか

・Bダッシュを作るというのはプログラミングの上では、Lスティックから出てくる数字をどう変化させればいいのか

・そのためには、Bボタンから出てくる数字をマッピングノードンで”へんかん”して、Lスティックから出てくる数字と”かけ算”してあげることが必要

というようなことを考えながら、試行錯誤してようやく正しいBダッシュを作ることが出来ました。

はじプロは、子どもと楽しみながらゲームを作ることができるだけではなく、ゲーム作りを通じて論理的な考え方・問題解決能力を育てることができそうですね!

以上となります。

-はじめてゲームプログラミング

Copyright© 小児科医の子育て相談室 , 2021 All Rights Reserved Powered by AFFINGER5.