今回つくるゲーム
難易度
今回は音楽に合わせて太鼓をたたく、太鼓の達人風のゲームを作っていきます。スペースを押すとドン、mを押すとカッっとなるようにします。ここではリストの使い方などを学習することが可能です。
※スクラッチ初心者の方は、まずこちらの、
もぐらたたきゲームの作り方(初級)
からチャレンジしてみてください。
準備
まずは、こちらにアクセスして、リミックスをしてください。
太鼓の達人風ビンゴおじさん(素材)
ゲーム作りひ必要なスプライトが一通り用意されています。
リミックスの方法が分からないという方はこちらの記事を参考にしてください。
おじさんを流す
太鼓の達人といえば、赤と青の太鼓が流れてきて、ターゲットと重なるのにタイミングをあわせて叩きます。
今回のゲームでも、まずはターゲットを設置するところから始めます。
ターゲットのスプライトのコードに以下のコードを書き、ターゲットを画面中央左側に配置します。
つぎにおじさんをターゲット目がけて流していきます。次々とスプライトが流れてくるのはクローンを使用します。その方法は横スクロールゲームの作り方でも学習しました。
以下のようにコードを書きます。1秒ごとに10個のクローンを作成し、クローンができたら中央右端から順番に出てきて左端(つまりX座標<-240)で削除されるというコードになります。
緑の旗を押してみると右から1秒おきにおじさんが流れてくるのがわかると思います。
次に音楽を設定します。今回は”アルプス一万尺”をつかいます。太鼓の達人でも実際にプレーできる音楽です。ステージのコードに以下を追記します。
ここで一つご注意いただきたいのが、著作権です。スクラッチで作品を作るときに、Youtubeからダウンロードしてきた楽曲を使ったり、ネットからキャラクターを拾ってきて使うのは絶対にやめましょう。また、著作権フリーの素材でも、再配布が禁止されている場合はスクラッチでは利用できません。スクラッチはリミックス機能があるため、それは素材の再配布にあたるからです。
今回、アルプス一万尺はこちらのサイトからダウンロードさせていただきました。楽曲がパブリックドメインになっており、サイト上に再配布禁止の注意書きがなかっため活用させていただいております。
つぎに音楽にあわせておじさんの数と、出てくる間隔を調整していきます。
まずは数ですが、この曲は以下のように64個の拍子でできています。(拍子という表現が正確かはわかりません)
ですので、まずはクローンの数を64回に設定します。
つぎに、出てくる間隔を調整します。
まずは間奏の間3.8秒待ってからクローンが作られ始めます。そして、1拍子の間隔が0.46秒なので、クローンとクローンの間に0.46秒あけます。そして、おじさんが連なって出てくるようにするために流れるスピードを−3に変更します。
これで、以下のように、音楽に合わせておじさんが連なって流れてくるようになります。
次に、この64の拍子の中で、ドンと太鼓を打つ時と、カッと側面を打つ時と、何も打たない時を設定していきます。今回は以下のように配分しました。
これを反映させていくためには、まずはクローン一つ一つに番号をつける必要があります。拍子番号という変数を設定し、クローンを作るたびに1づつ変えていくことで1〜64の番号を作っていきます。
そして、たとえば拍子番号4はおじさんを非表示(隠す)にして、拍子番号19はおじさんをカッおじさんにコスチュームを変更する、といった制御をしていきます。
しかし、都度指示をしていくのは非常に大変です。そこで活用するのがリストになります。
”打たない”と”カッ”のリストを作成します。そしてそれぞれ対象の番号を追加していきます。
そして、クローンされたときに切り分けていきます。下図のように、”打たない”のリストの中に拍子番号が含まれていたら、そのクローンは隠し、”カッ”のリストの中に拍子番号が含まれていたらコスチュームをコスチューム2にして、どちらでもなければコスチューム1にする。という指示になります。
また”進む”という定義を使ってプログラムを見やすくしています。
緑の旗を押して以下のように指示通りに流れてこれば成功です。
あたり判定を作る
つぎに、おじさんがターゲットに来たときにタイミングよくキーを押すとポイントになるようにします。ここでよく使うのが、下のような、”もし**に触れたなら”というコードです。
シューティングゲームの作り方でもそのようにあたり判定しました
しかし、このような当たり判定では、ゆるすぎてゲームになりません。
黄色の円の真ん中にきちんとおじさんがハマったときにキーが押される(太鼓が叩かれる)と成功とされるべきです。そのときに使うのが以下のコードです。色と色が触れることであたり判定とします。
今回はスプライトに二つ仕掛けを加えています。おじさんの眉間のシワを周りの黒色とすこし違う茶色にしているのと、ターゲットを濃い黄色とうすい黄色の2層構造にしていました。
そうすることで、当たり判定を以下のようにシビアに設定することができます
これをコードにおこすと以下のようになります。
次に**色が**色に触れたの部分の色を調整していきます。数値で合わせても良いですが、スポイトツールを使うと便利です。ドンおじさんを大きく表示して眉間の色を吸い取ります。
どうようにターゲットの黄色も吸い取ります。
濃い方の黄色も吸い取ります。
ドンのときはスペースを押すようにしますが、カッのときはmを押すようにします。同様に色を設定してください。
次にそれぞれのキーを押した時の音も設定していきます。
今回はそれぞれTomDrumとTapCongaを設定しました。すべて組むと以下のようになります。
次にそれぞれ”可”、”良”、”不可”を受け取った時の他のスプライトの動きを追加していきます。
まず”判定”のおじさんのコードを書いていきます。ここは非常に単純で”良”を受け取ったときに”良”と言い、”可”を受け取ったときに”可”と言ってもらうようにします。
さらにステージのコードに以下を追加していきます。”良”、”可”、”不可”という変数を作り、
それぞれ受け取るたびに1づつ変えていきます。
ここまでできたら緑の旗を押してプレーしてみてください。
ここで一つ問題が起こりました。良や可をとっても、不可にもスコアがついてしまいます。これはなぜかというと、スペースキーを打ったときに、先頭のおじさんはターゲットにばっちしはまっているけど、そのほかに流れてきているおじさんは黄色に触れていないからです。精密にコードを修正することもできますが、今回は対処療法として、良・可のときに不可のスコアを一つ下げることで対処します。
以上で完成です。
完成されたコードはこちらから確認することができます。
太鼓の達人風ビンゴおじさん
次の記事では、このゲームをスマホでも遊べるように少しプログラミングに修正を加えていきます。ひと手間加えることで、多くの人に遊んでもらえるようになりますのでスマホ対応には是非取り組んでみてください。