今回はScratch(スクラッチ)を使ったゲーム作りの第1弾として、木琴で音楽をかなでる方法をご紹介します。
やり方としては1つだけスプライトを作ってプログラミングしてしまえば、あとはコピペと調整だけでできてしまいます。
とっても簡単なので、スクラッチを始めたばかりの方が基本操作を学ぶのに最適です。
なおこのブログでは、作り方だけでなく考えさせる課題も織り込んでいます。
考えながらプログラミングを完成させていくことで、プログラミング的思考の基礎が身につきます。
ちなみにスクラッチの始め方と基本操作についてはこちらの記事をご参照ください。
-
プログラミング学習はスクラッチから!だれでも簡単・使い方入門
プログラミング学習を始める入り口として最適なScratch(スクラッチ)の始め方や基本操作を解説します。 小中学生のお子さんを持つご両親はもちろん、プログラミング初心者の方にもオススメで ...
続きを見る
それではさっそく、始めましょう。
この記事のもくじ
スクラッチで木琴を作ろう
ここでは木琴(マリンバ)としていますが、どんな楽器にすることもできます。
まずは手順通りに進めてみて、慣れてきたら自由にカスタマイズを楽しんでみてください。
「ド」を奏でる鍵盤を作る
まずスクラッチを開き、スプライトを追加します。
私はある仕掛けをしたかったので、「egg」にしました。
今回はキーボードのAからKまでを使って音を出せるようにするので、Aのキーが押されると「ド」の音を出すようプログラムします。
ここで先ほど触れた”ある仕掛け”をしたいと思います。
ここで「egg」のコスチュームを見てみましょう。
「egg-a」から「egg-f」までありますが、ニャアは叩かれると割れるようにしたいので「egg-b」に変わる様にします。
Aキーを押して音がなることとコスチュームが変わることを確認してください。
ここでニャアの課題です。
ちょっと考えてみましょう…!答えが見つかりましたか?
「レ」を奏でる鍵盤を作る
続いて、「レ」の鍵盤を作ります。
これは最初に作ったスプライトを「複製」すればすぐにできます。
スプライトを複製(コピー)すると、スクリプトも一緒に複製されます。
しかし今のままだとegg2のスクリプトはAキーで「ド」の音が鳴るようになっているので、Aのとなりの「S」キーを押したら「レ」の音が鳴るようにしましょう。
egg2のスクリプトの変更をしたら、AとSを押してみて違いを確認しましょう。
「ミ」以降の鍵盤を作る
ここまでできたら、あとは簡単です!
「ミ」から先を自分で作ってみましょう。
ちなみにプログラムがうまく出来ていれば、↓のようにキーを押すとある曲を奏でられます。
弾いてみよう
A・A・G・G・H・H・G
F・F・D・D・S・S・A
G・G・F・F・D・D・S
G・G・F・F・D・D・S
A・A・G・G・H・H・G
F・F・D・D・S・S・A
何の曲か分かりましたか?
”待つ”と”初期化”の重要性
最後にニャアの課題①の答え合わせをします。こんな課題でした。
- 「○秒待つ」を追加したのはナゼでしょう?
- 「コスチュームをegg-aにする」はなぜ必要なのでしょう?
”待つ”を入れないと高速すぎて見えない
まず 1 の答えですが、「○秒待つ」を入れないとコスチュームが変わっても一瞬で元に戻ってしまうのがわかると思います。
これはコンピュータの処理が高速で動いているからです。
一瞬でも変化が見られるならばまだ良い方で、一瞬すら見えないこともあります。
よって「待つ」は常に入れておく習慣をつけましょう。
このスクリプトの場合「コスチュームegg-bの状態にして0.25秒待つ(保つ)」という意味になります。
ちなみにスクリプトは並べられている順番通りに動くため、上の処理が終わらないと次の処理に移行できません。
今後プログラムが複雑になってくるとそのような問題もでてくるので、「待つ」の重要性と順番通りに動くということを覚えておきましょう。
初期化とはなにか?
次に 2 の答えですが、コスチュームをegg-aに戻さないとすると、ずっとegg-bのままです。
するとキーを押した時にコスチュームが変わるという仕掛けが1回限りで終わってしまいます。
最初の状態に戻しておくという意味で、最後に「コスチュームをegg-aにする」を入れておく必要があるのです。
ちなみにこれも基本的な処理方法で、かなり多くの場面で使うことになると思います。
今後ゲーム作りを進めていく中で初期化にも触れるので、楽しみにしてください!
今回のまとめ
最後に今回学んだことをまとめておきます。
Scratchテクニック!
- 拡張機能を追加するとスクリプトが増える
- スプライトを複製するとスクリプトも一緒に複製できる
- 「待つ」は超重要!常に意識する
- プログラムは基本的に順番通りに動く
- 最初の状態に戻す”初期化”も忘れない
ちなみに動画も作ってみたのでおさらいにどうぞ!
Scratchで作れるゲームを続々と発信していきます。
2020年度からのプログラミング必修化に向けた準備が気になる方はこちらもどうぞ。