HOME技術レッツ!スクラッチレッツ!スクラッチ (16) インベーダーゲームをつくろう ― 音を出そう!

レッツ!スクラッチ (16) インベーダーゲームをつくろう ― 音を出そう!

これまでゲームが面白くなるように色々と工夫をしてきましたが、一つまだ手を付けていないことがあります。
それが「音を出す」ことです。

今回は、ゲームスタートのとき、たまをうった時、敵にたまがあたったとき、敵がたまをうったとき、敵のたまがプレイヤーにあたったとき、敵が出現したとき、アイテムが出現したとき、アイテムをゲットしたとき、ゲームオーバーになったとき、それぞれで音がなるようにつくっていきましょう。

いろんなタイミングで音を鳴らそう

ゲームスタートの時に音を鳴らす

ゲームを開始したときに音を鳴らす方法です。
ゲームを開始するタイミングは、「旗マーク」が押されたタイミングです。
どのスプライトでもよいのですが、ここでは「スプライト1」スプライトの、「旗マークが押されたとき」ブロックで設定します。

このブロックの下に、「ニャーの音を鳴らす」ブロックを入れましょう。

そして、「音」タブを開きます。

「音を選ぶ」アイコンをクリックします。

ここで、ゲームスタートの音は、「Win」を選んでみました。
「Win」をクリックします。

「音」タブの中に「Win」がセットされました。

「コード」タブを表示して、「旗マークが押されたとき」ブロック内の「ニャーの音を鳴らす」を「Winの音を鳴らす」に変えます。

これでゲームをスタートしてみると、音楽がなりましたね?

では、じゃんじゃん音を入れていきましょう!

ゲームオーバーの時の音

「ゲームオーバー」スプライトを開きます。
「音」タブを開き、「音を選ぶ」アイコンから、「Lose」を選びました。

「ゲームオーバーを受け取ったとき」ブロックの下に「Loseの音を鳴らす」ブロックを入れましょう。

これでゲームを動かして、ゲームオーバーにしてみましょう。
音は鳴ったでしょうか?
残念ながら、途中で音が切れてしまいましたね。

これは、音がなり終わる前にゲームの処理がすべて止まってしまうためです。

この場合には、「終わるまでLoseの音を鳴らす」ブロックに変えてみましょう。

しかし、ここで問題発生です。
敵のたまに当たって、ゲームオーバーになったのに、爆発が敵の位置で発生してしまいますね?

これは、「ゲームオーバーを受け取ったとき」のすぐ下に「終わるまでLoseの音を鳴らす」を入れてしまったせいです。

爆発処理である、「Sun」スプライトを見ると、「Sun」スプライトのクローンがつくられたときに、「ゲームオーバー」変数が1ならば、「Sun」クローンの位置を「スプライト1」スプライトの座標にしています。

しかし、ゲームオーバーになったときに、先にLoseの音を鳴らしてしまったために、「ゲームオーバー」変数を1にする前に、爆発処理が動いてしまっているのです。
これを直すには、「終わるまでLoseの音を鳴らす」ブロックを、「すべてを止める」の上に移動します。

これで、爆発が自分の位置で発生するようになりました。

ロケットがたまをうった時の音

ロケットがたまをうった時の音は、「Ball」スプライトの「クローンされたとき」ブロックの下に入れます。

まずは「音」タブで、「音を選ぶ」から、「Pew」を選びましょう。

「Pewの音を鳴らす」ブロックを入れましょう。

敵が攻撃してきたときの音

敵の攻撃は、「Rip」にしました。
「Lightning」スプライトを開き、「音」タブから「音を選ぶ」を選択し、「Rip」を選んでおきましょう。
「クローンされたとき」の下に「Ripの音を鳴らす」ブロックを入れます。

爆発したときの音

爆発音は「Oops」にしました。
敵が爆発したとき、自分が爆発したとき、両方ともこの音を鳴らします。

「Sun」スプライトを開き、「音」タブから「Oops」を選んでおきます。

「クローンされたとき」の下に「Oopsの音を鳴らす」を入れます。

敵が出現したときの音

敵の出現のときの音は「Low Boing」にしました。
「Ghost」スプライトを開き、「音」タブから「Low Boing」を選んでおきます。

「クローンされたとき」の下に「Low Boingの音を鳴らす」を入れます。

でも、このままだと敵の爆発音と出現音が同時になるので、わかりづらいですね。
今回はこのままにしておきますので、気になる人は、自分で敵の出現のタイミングを遅らせて、音がはっきりと聞き取れるように改造してみてください。

アイテムが出現したときの音

アイテム出現時の音は「Teleport2」にしました。
「Star」スプライトを開き、「音」タブから「Teleport2」を選びます。

「クローンされたとき」の下に「Teleport2の音を鳴らす」を入れます。

アイテムをゲットしたときの音

アイテムをゲットしたときの音は、「Magic Spell」にしました。
「Star」スプライトの「音」タブで「Magic Spell」を選んでおきます。

「クローンされたとき」ブロック内の「もしスプライト1に触れたなら」の中の「アイテムゲットを送る」の下に「Magic Spellの音を鳴らす」を入れます。

これで一通り音を入れることができました。
他にも音を入れてみたいところがあれば、工夫してみてください!

次回は、ゲームを開始するボタンを画面上に表示させてみます。
残すところあと2回ですよ~!

「レッツ!スクラッチ」コンテンツリスト

関連記事

レッツ!スクラッチ (4) インベーダーゲームをつくろう ― ゲームを設計しよう

おまたせしました! 「レッツ!スクラッチ」第4回目は、いよいよゲームをつくっていきます。 その中でも、今回はインベーダーゲームをつくります。 ゲームを設計しよう! まずはどんなゲームにするのか、企画を…続きを読む

レッツ!スクラッチ (1) プログラミングの心得

「レッツ!スクラッチ」では、ビジュアルプログラミング言語「スクラッチ(Scratch)」を使って、わたしが実際につくったプログラムを紹介してくコーナーです。 プログラミングに興味を持つきっかけとして、…続きを読む

レッツ!スクラッチ (9) インベーダーゲームをつくろう ― ゲームオーバーの処理をつくろう!

前回は敵が左右に動き、プレイヤーに迫ってくるところまでをつくりました。 このままだと敵が画面の一番下にたどり着いて左右に行ったり来たりすることになります。 今回は、敵がプレイヤーの位置まで下がってきた…続きを読む

レッツ!スクラッチ (5) インベーダーゲームをつくろう ― 画面にプレイヤーを表示しよう

さあ、ゲームの設計もかんたんですが、おわりました。 いよいよプログラミングをしていきましょう! 最初は、画面を用意して、プレイヤーを表示するところまでをやっていきます。 画面の背景を指定しよう! まず…続きを読む

レッツ!スクラッチ (14) インベーダーゲームをつくろう ― インベーダーに攻撃させよう!

これまでインベーダーは移動してくるだけでした。 今回はインベーダーも移動しながらたまをうってくるようにしてみましょう。 これでぐっと難易度が上がりますね。 いつものとおり、まずは敵がうってくるたまのス…続きを読む

レッツ!スクラッチ (7) インベーダーゲームをつくろう ― たまを発射する

次は、いよいよ攻撃です。 スペースキーを押したら、ロケットから、たまが発射されるようにします。 たまを発射するには、たまの画像が必要になります。 スプライトペインの右下のアイコンにマウスカーソルを合わ…続きを読む

レッツ!スクラッチ (8) インベーダーゲームをつくろう ― 敵を表示して動かす

インベーダーゲーム、ついに敵の登場です。 まずは、敵の画像を選ぶところからです。 右下のスプライトペインから、「スプライトを選ぶ」アイコンにマウスカーソルを持っていき、虫めがねアイコンをクリックします…続きを読む

レッツ!スクラッチ (6) インベーダーゲームをつくろう ― プレイヤーを左右に動かそう

いよいよ、プレイヤーを動かせるようにしていきます。 キーボードの右矢印キーを押したら右へ、左矢印キーを押したら左に動くようにしましょう。 「x座標を0、y座標を-150にする」ブロックの下に、「ずっと…続きを読む

レッツ!スクラッチ (11) インベーダーゲームをつくろう ― 点数をつけよう!

さあ、これまででロケットからたまを発射して、敵を倒す、という仕組みができました。敵が自分の陣地まで入ってきたらゲームオーバー、という処理も入れています。 さらにゲームらしくするためには、スコアをつけま…続きを読む

レッツ!スクラッチ (17) インベーダーゲームをつくろう ― ゲームスタートボタンをつくろう

今回はスタートボタンをつくります。 ゲームを始めるときに、画面に表示されている「START」などの文字、もしくはボタンのことです。 「旗マーク」をゲームのスタートボタンとしてもよいのですが、ゲームっぽ…続きを読む