【オンライン講座+作り方解説】Scratch(スクラッチ)で音ゲームを作ろう!書籍「スクラッチ3.0でゲームを作ろう」掲載のゲーム作り方説明

Scratch(スクラッチ)で音ゲームを作ろう!
KIDSPRO岡田哲郎著書「スクラッチ3.0でゲームを作ろう!」に掲載されている音ゲームの作り方を解説します。

【中級:作り方説明+クイズ形式】Scratch(スクラッチ)で音ゲームを作ろう!

Scratch(スクラッチ)で大きい声を出してフグの大きさを変える音ゲームを作ります。ゲームを作る過程で、調べるカテゴリーの音量ブロック、変数のステージモニターについて説明します。

 

日時: 2023/08/12(土) & 2023/08/13(日) 17:30 ~ 18:30
場所: オンライン講座
対象: KIDSPROスクール生、KIDSPRO eラーニングをご利用の方
必要なもの: Scratchが使えるパソコン、またはタブレット
費用: 無料

説明動画で作るScratchプロジェクト

ゲームのやり方

操作方法:大きい声を出だしてフグを大きくする。

フグがさかなに触れたら100点、サメに触れたらゲームオーバー!

※Scratchプロジェクト「音ゲーム」は、https://scratch.mit.edu/projects/881473189よりアクセスできます。

音ゲーム:フグのスクリプト

のスクリプト

左に動かすスクリプト
  1. 旗をクリックしたら、フグをx座標0、y座標-50に瞬間移動する。
    ※動画説明の最初ではy座標0としていたが、ゲーム完成後のゲームチェック後に難易度が高いため、y座標を-50に変えてゲームの難易度を調整した。
  2. ずっと繰り返し、x座標を-1ずつ変えるブロックを実行し、もしもフグのx座標が-240よりも小さくなったらx座標を240に変える。
    ※フグは左方向に移動し続け、フグのx座標が-240(ステージの左端)よりも小さくなったら、x座標240(ステージの右端)に瞬間移動する。

上下に動かすスクリプト
  1. 旗をクリックしたら、処理2をずっと繰り返す。
  2. y座標を-1ずつ変えるブロックを25回繰り返し実行し、その後にy座標を1ずつ変えるブロックを25回繰り返し実行する。
    ※フグは1ピクセルずつ25回上に動き、1ピクセルずつ25回下に動く動作を繰り返す。
    ※「左に動かすスクリプト」と「上下に動かすスクリプト」を同時に実行することにより、フグは上下にフワフアしながら左方向に動く。

音量で大きさを変えるスクリプト
  1. 旗をクリックしたら、処理2をずっと繰り返す。
  2. パソコンやタブレットのマイクで受信した音の大きさがレベル10よりも大きければ、フグの大きさが1ずつ大きくなるブロックを実行する。音の大きさが10よりも小さければ、フグの大きさが100%よりも大きいときだけフグの大きさが1ずつ小さくなるブロックを実行する。
    ※処理1と2により、マイクで受信した音量が10よりも大きければフグの大きさは大きくなり、音量が10以下ならばフグの大きさは小さくなる。ただし、フグの大きさが100よりも大きいときに「大きさを-1ずつ変える」ブロックを実行するようにしているので、フグは100%よりも小さくならない。
2つの音量ブロックについて

Scratchには同じ名前の「音量」という値ブロックが2つあります。それぞれの役割が違うので注意してください。

カテゴリ:ブロック

パソコンやタブレットで受信した音(雑音)の大きさを返すブロックです。このブロックを利用すれば、声の大きさでキャラクタを動かしたり大きさを変えたりするゲームなどが作れます。

注意)このブロックをプログラミングエリアに出すと、マイクの使用許可を求めるメッセージ画面が表示されますので、「許可」を選んでください。

 

カテゴリ:ブロック

スプライトが出す音や音楽の大きさ返すブロックです。 でスプライトが出す音の大きさを変えることが出来ます。

ブロックの値が0になるまでを繰り返し実行するなど、スプライトが出す音の大きさを徐々に小さくしたいときなどに利用できます。

音ゲーム:サカナのスクリプト

のスクリプト

サカナのスクリプト
  1. 旗をクリックしたら、変数「スコア」の値を0にリセットし、x座標-240、y座標-120に90度(右)を向いた状態でステージに表示される。
  2. 処理3-5をずっと繰り返す。
  3. 「2歩動かす」ブロックを実行する。
    ※処理1でサカナは90度(右)を向いているので、右方向に2ピクセルずつ移動する。
  4. もしも、サカナのx座標が240よりも大きければ、x座標-240に瞬間移動する。
    ※サカナが右方向に動き続け、サカナのx座標が240(ステージの右端)よりも大きくなったら、x座標-240(ステージの左端)に瞬間移動する。
  5. もしも、サカナがフグ(Pufferfish)に触れたら、変数「スコア」の値を100ずつ変えて、ステージから姿を隠し、終わるまで「Jump」の音を鳴らしてからx座標-240~0のいずれかの場所に瞬間移動し、コスチュームを変えてからステージに表示される。
    ※サカナがフグにぶつかったら、変数「スコア」の値が100増えた後に、サカナは音を鳴らしてステージから姿を消して、コスチュームを変えてx座標-240~0のいずれかの場所に再表示される。なお、サカナのコスチュームは4つあるので、4種類のサカナがゲームに現れる。

gameoverを受け取ったときのスクリプト
  1. メッセージ「gameOver」を受け取ったとき、
    ※メッセージ「gameOver」は、後に説明するスプライト:サメ(Shark)から送信される。
  2. スプライトの他のスクリプトを止める。
    ※本ブロックを実行すると、同じスプライト内の実行中のスクリプトだけが停止する。つまり、メッセージ「gameOver」を受信すると、先に説明した「サカナのスクリプト」が停止して、サカナは右方向に移動しなくなる。

音ゲーム:サメのスクリプト

のスクリプト

サメのスクリプト
  1. 旗をクリックしたら、x座標-150、y座標125に90度(右)を向いた状態でステージに表示される。
  2. 処理3-5をずっと繰り返す。
  3. 「4歩動かす」ブロックを実行する。
    ※処理1でサメは90度(右)を向いているので、右方向に4ピクセルずつ移動する。
  4. もしも、サメのx座標が240よりも大きければ、x座標-240に瞬間移動する。
    ※サメが右方向に動き続け、サメのx座標が240(ステージの右端)よりも大きくなったら、x座標-240(ステージの左端)に瞬間移動する。
  5. もしも、サメがフグ(Pufferfish)に触れたら、メッセージ「gameOver」を送信し、終わるまで「Dun Dun Dumn」の音を鳴らしてから、全てのスクリプトを止める。
    ※サメがフグにぶつかったら、まずメッセージ「gameOver」を送信して、全てのスクリプトが停止する前にゲームオーバーの処理を実施する。ここでは、スプライト「サカナ」と「スプライト1」がメッセージ「gameOver」を受信した後にスクリプトを実施している。

音ゲーム:スプライト1のスクリプト

のスクリプト

初期設定のスクリプト
  1. 旗をクリックしたら、ステージから姿を消す。
  2. x座標0、y座標0に移動し、変数「スコア」のステージモニターをステージから消す。

gameoverを受け取ったときのスクリプト
  1. メッセージ「gameOver」を受け取ったとき、
    ※メッセージ「gameOver」は、先に説明したスプライト:サメ(Shark)から送信される。
  2. ステージに姿を表し、変数「スコア」のステージモニターを表示する。
    ※サメ(Shark)から「gameOver」のメッセージが表示されると、ステージのGame Overという見た目のスプライトが表示され、変数「スコア」のステージモニターも表示される。
ステージモニターの解説

ステージモニターは、ブロックパレットにある値ブロックの左側のチェックボックスを入れるとステージに表示される。

3種類のステージモニターがあり、ステージモニターをダブルクリックするか、ステージモニターを右クリックしてモニターの種類を選択する事ができる。

 

  1. 普通の表示:
  2. 大きな表示:
  3. スライダー:

※リストの値ブロックには、リストを表示するためのステージモニターもある。

止めるブロックの解説

止めるブロックは、スクリプトの動きを止めるためのブロックです。これらのブロックを使うと、プログラムの動き(シーケンス)を細かく制御することができます。

Scratchプロジェクトの中で動いているすべてのスクリプトを止めます。すべてのスプライトや音楽、動き、すべてが止まります。

このブロックが含まれているスクリプトだけを止めます。他のスクリプトやスプライトの動きは止まりません。

同じスプライトの中で動いている他のスクリプトを止めます。このブロックが含まれているスクリプトは止まらず、他のスプライトも影響を受けません。

Scratch3.0(スクラッチ3.0)とは?

MITメディアラボにより開発されたビジュアルプログラミング言語。子供たちが物語やゲーム、 アニメーションなどのインタラクティブな作品をプログラミングできる。また、自分の作った作品を世界中の人々と共有できるコミュニティーサイトでもある。世界中で1億人を超えるユーザがいる。
こちらのホームページにアクセスすれば無料で利用できる。