,

スクラッチ(scratch)音ゲー作り方!タイマーと繰り返し処理を使ってリズムゲームを作ろう

Posted by

様々な音ゲーがあります。
四方八方に出現するイラストが重なり合った時のタイミングに合わせて、ボタンを押したり、上から流れてくる絵を押したりして、音楽に合わせながら遊ぶリズムゲームの作り方です。

まずは音ゲーで動体視力を測定してみよう!

動体視力を測定する音ゲーリズムゲームになります。
※旗マークを押して、スペースキーを押してスタートしてください。
※モードを選択してください。
※矢印の向きに合わせて、→↑↓←キーを押してください。
※正しくボタンを押すとスコアが加算されます。失敗することに、スコアが減りますのでご注意ください。
※ダンスミュージックがなりますので、ボリュームの調整をしてください。

音ゲーリズムゲームに必要なプログラミング構成を考えてみよう!

音ゲーリズムゲームに必要なプログラムはなんでしょうか?

①スタート画面をを作る
②モード選択画面
③矢印を作る
④音楽と難易度を調整しよう
⑤スコアを作る
⑥スコア評価を作る

大まかに必要なもになります。

①スタート画面を作る

ゲームの開始画面を用意しましょう。
今回は、スペースキーを押したらゲーム開始となります。

②モード選択画面を作る

モード画面を用意します。
背景に「ちょい簡単」と「ちょい難~!」のボタンを作成します。

スプライト(ボタン)が押されたときに、それぞれの背景に遷移します。

背景に切り替わった時をトリガーに、掛け声と難易度に合わせた音楽を鳴らします。

③矢印を作る

矢印を4つ用意します。
上、下、左、右のように向きを描きます。

簡単モードには、約1秒の感覚で矢印を画面の範囲内に出すように座標を調整し、ランダムな場所に出現するようにしています。

背景番号を使い、比較演算子を使って比較させます。
乱数と背景番号が一致したら画像が出現する仕組みです。

難しいモードには、同じように関数を用意し、出現する秒数だけを0.5秒で早く動くようにしています。

④音楽と難易度を調整しよう

簡単な背景と難しいにそれぞれの処理を作ります。
タイマーを活用して、音楽が鳴り終わるまで、繰り返しモード関数を実行します。タイマーが来たらゲームは終了となります。

⑤カウントスコアを作る

矢印の出現と同時に矢印マークを押すことで、100ポイントが加算されます。
ですが、間違ってキーを押すとー100減ります。

各キーを実行した際に、コスチュームの番号が同じランダムな数字と一致した場合に、発火します。

⑥スコア評価を作る

音楽が終わるまでの集計を行います。
変数スコアに加算された合計数を、スコア画面に遷移した際に、表示させます。

以下のように、スコアの合計数に応じて評価を行いました。

考えてみよう①矢印の数や移動方法を作ってみる

今回は矢印をランダムに出現させました。
音ゲーのように、矢印の動きの数を増やし、矢印の数を増やすとどでしょう。
それぞれの処理を作って追加すれば、より面白くできるかもしれません。

中央に集まってくる矢印(アイカツゲーム)、上から下に流れてくる矢印(DDRのような音ゲー)、左から流れてくる矢印(太鼓の達人)など、アイコンを矢印やかわいい星、太鼓の顔のようなデザインなどありますよね。

考えてみよう②音楽を充実させてみる

今回は2曲で作りましたが、曲数を増やすこともできます。
その曲数に対して、モードを3つ用意する背景とモードのプログラムが必要になることがわかります。

いろんな局が選曲できると、面白いですよね。

考えてみよう②スコアのルールを増やしてみる

今回はscratchの変数カウントを使いましたが、カウントのルールも増やすことで、HPダメージを作ることも可能です。

ゲージが少ない場合には、青
ある一定のカウントを超えたら、黄色
多くのカウントを取得したら赤になるなど、スプライトを用意しても面白いかもしれません。

音ゲーリズムゲームをプログラミングする方法は色々ある

音ゲーの種類にものよりますが、作り方はたくさんあります。

javaもJavaScriptも、PHPもC言語で同じ作り方をしてもできますし、文法が違うだけで基本はさほどかわりはありません。

答えはひとつではないので、自分ならどうやって作るのかを考えながら、独学したり、学習に役立てて欲しいと思います。

scratch(スクラッチ)は、大人も子供も関係なく学習するには最適の環境です。

プログラミングが苦手だなと思う大人の方は、難しい言語から学ぶよりも、ビジュアルからやってみると、挫折しにくいかもしれませんので、このプログラムはどうやったら作れるか、難しいなーと思ったらscratchを使って、考えてみると良いかもしれませんね。

PAGE TOP