【Scratch】<入門編>2-4 ボールをよけるゲームを作ろう!(マウスについてくるスプライト)

・スプライトをマウスで動かす(→「~に向ける」:マウスについてくるスプライト)
・ゲームオーバーとゲームクリア(ブロック「すべてを止める」)
・効果音の付け方(「~の音を鳴らす」)
こんにちは、Anksです。今回もみなさまよろしくおねがいします。
前回 <入門編>2-3 ねこを動かそう!その2(矢印キーでスプライトを動かす/当たり判定)では、矢印キーで自由に動くねこのスクリプトを作りました。
今回は、ねこがマウスについていく動きを作っていきますよ。
まずは、先に出来上がりのイメージを見ていただきたいと思います!
下の画面の旗のボタンをクリックしてください。(効果音があります)
マウスについてくるねこを動かして、
うまくボールをよけながら風船をとれたらゲームクリア!です。
うまく取れましたか?油断すると意外とボールに当たります(笑)
今回は、このプロジェクトを作っていきましょう!

○背景とスプライトの追加

今回は、背景一覧から「Basketball 1」を選びましょう。
(背景の設定とスプライトの追加の仕方は、前回のチャプターを参照)
【Scratch】スクラッチ バスケットボール背景の選択
次に、スプライトを選ぶ、から、
「Basketball」、「Balloon1」をそれぞれ追加します。
【Scratch】スクラッチ バスケットボールと風船 スプライトの選択
↓↓背景設定・スプライト追加後
【Scratch】スクラッチ 背景とスプライトの追加後
背景・各スプライトが追加できたら、各スプライトの初期設定をしていきましょう!

○ねこ

スプライト名=ねこ、X座標=-180、Y座標=-110にしました。
初期化のためのブロック設定も忘れず行いましょう。

【Scratch】スクラッチ ねこの初期化設定
今回は、ねこがマウスについてくると位置と向きが変わるので、位置と向きについて初期化設定します。

○バスケットボール

スプライト名=ボール、X座標=0、Y座標=0にしました。
また、ボールは画面上を斜めに動き回るようにしたいので、向き=140°に設定しています。

【Scratch】スクラッチ ボールの初期化設定

初期化のブロック設定は上のようになります。

Anks
向きの数値を変えると、ボールが違う動きをするゲームになりますよ。

○風船

スプライト名=風船、X座標=180、Y座標=70にしました。

風船に動きはないので、初期化の設定は必要ありませんが、
風船の青色が、背景と近い色で見づらいので、コスチュームを変更して黄色の風船にしましょう!

【Scratch】スクラッチ 風船のコスチューム変更

コスチューム選択画面から、「balloon1-b」をクリックして選択します。

以上で、背景/各スプライトの追加と初期設定は完了です。
次に、各スプライトの動きを作っていきますよ。

○マウスについてくるねこの動き

まずは、ねこの動きについて作っていきましょう!
スプライト選択をねこに戻してブロックを組んでいきます。

マウスについてくる動きを表現するには、いくつかの方法があります。
一番かんたんな例が、「ずっと」ブロックの中に「マウスのポインターへ行く」を入れたものです。

【Scratch】スクラッチ マウスについていくねこ1

試しに、この状態で旗のマークをクリックしてみてください。

あっという間にねこがマウスのポインターの方に来て、マウスを動かすとねこがぴったりついてくるのがわかりますか?

これでもマウスについてくる動きは実現できていますし、ゲームによってはこのほうがいいと思います。
でも、あまりにすぐ風船にたどり着いてしまうので、今回のゲームには使えそうにありませんね、、、。

そこで、「マウスのポインターに向ける」ブロックを使った、別の方法を試しましょう。

【Scratch】スクラッチ マウスについていくねこ2

これは、ねこをマウスのポインターの方に向けて、そのあと、5歩近づいてくる、
という形で動きを表現したものです。

再び、旗のボタンをクリックしてください。

どうでしょうか?先ほどよりもゆっくりとついてくる動きになりましたね。
(なお、ねこがマウスに近すぎると、カタカタくるくるして見える現象を回避する方法は、このチャプターの末尾をご参考ください)

ただ、このままだと、旗をクリックした瞬間からねこがカーソルの方に来てしまうので、
旗が押されてから1秒後にゲームが始まるようにしてみましょう。

【Scratch】スクラッチ マウスについていくねこ 1秒待つブロック追加

このように、「ずっと」の上に「1秒待つ」のブロックを入れることで、ねこが動き始めるスタートを1秒遅らせることができます。

これで、ねこがマウスについてくる動きを作ることができました!

○ゲームオーバーとゲームクリア

次に、ゲームオーバーとゲームクリアを作っていきましょう。

どのようにブロックで表現していけばよいでしょうか。

まず、ゲームオーバーは、ボールに触れたなら、ですよね?
そんな時は、前回同様、「もし~なら」ブロックです!当たり判定ですね。

【Scratch】スクラッチ ゲームオーバー すべてを止める配置前

 

このように、もしボールに触れたなら、ねこがゲームオーバーと2秒言うようにして、
「ずっと」ブロックの中に配置しましょう。

できましたら、旗を押してボールに触れてみてください。

ねこがゲームオーバーと言うようになったと思います。
でも、ひとつ困ったことに気づきませんか?

 

このままだと、ゲームオーバーになった後でも、
ボールから離れればまた動き出して風船のところに行けてしまうのです。

ゲームオーバーになったら、ゲーム終了にしたい、、、!そんな時に使えるのが、「すべてを止める」ブロックです。

【Scratch】スクラッチ ゲームオーバー すべてを止める配置後

このように、「制御」欄から下部のほうにある「すべてを止める」ブロックを追加して、
ゲームオーバーと2秒言ったあとですべてを止めるようにしましょう。

「すべてを止める」は、
文字通り、すべてのスプライトなどの処理が止まるので、
これでゲーム終了を実現できます!

旗ボタンの横の赤丸を押したときと同じ効果が起きる、ということですね。

 

同様に、ゲームクリアも作っていきましょう。
ゲームクリアは、風船に触れた時です。完成後は、このようになりますよ。

【Scratch】スクラッチ ゲームオーバーとゲームクリア配置後

以上で、ゲームオーバーとゲームクリア時のスクリプトを作ることができました。

今回は、それぞれの時の効果音も付けてみましょう。

○効果音の付け方

スクラッチには、スプライト同様、あらかじめ多くの効果音が用意されています。

まず、画面左上の、「音」タブをクリックしてください。

【Scratch】スクラッチ 効果音の選び方

ねこのスプライトはあらかじめ「ニャー」の音が使えるようですが、
他の音を使いたい場合、左下の【Scratch】音を選ぶボタンのボタンをクリックして、一覧から音を追加します。

【Scratch】スクラッチ 音を選ぶ 一覧の画像

今回は、ゲームオーバーの音に「Oops」、クリアの音に「Wand」をそれぞれ選択して追加していきましょう。

【Scratch】スクラッチ 音の選択追加後

ご自身のお好きな音を選んでいただいても大丈夫ですので、試してみてください
(それぞれの音の右上の【Scratch】音の再生ボタンのボタンにカーソルをのせると、音が聴けます。)

Anks
音はアルファベット順に並んでいます。見つけづらい場合、左上から検索することもできますよ。

追加すると、
コードの「音」欄にある「~の音を鳴らす」ブロックで、追加した音が選べるようになっています。

【Scratch】スクラッチ ~の音を鳴らすブロック

「Oopsの音を鳴らす」のブロックと、「Wandの音を鳴らす」ブロックを、
それぞれゲームオーバー時とクリア時の部分に追加して、ねこのスクリプトは完成です。

【Scratch】スクラッチ ~の音を鳴らすブロックの追加後

ここで注意してほしいのは、ブロックの並び順です。

もし、
音を鳴らすブロックを、「~と2秒言う」のブロックより後に配置してしまうと、

風船に触れる→ゲームクリアと2秒言う(2秒待たされる)→音を鳴らすブロックが実行されると同時に、「すべてを止める」も実行されて、音が何も鳴らない、、、!

という順番の処理になってしまいます。

 

【Scratch】スクラッチ 終わるまで~の音を鳴らすブロック

なお、一つ上に「終わるまで~の音を鳴らす」というブロックがありますが、
こちらのブロックは、「~と~秒言う」のブロックと同様、音が鳴り終わるまで次のブロックの処理は待機される使い方ができます。

「ずっと」ブロックの中に入れることで、BGMをループさせたいときなどにも使えるブロックです。

少々説明が多くなりましたが、最後にボールの動きを作ってプロジェクトは完成です!

○ボールの動きのスクリプト

斜めに動き回るボールのスクリプトは、<入門編>2-2 ねこを動かそう!その1で作った、
左右にウロウロするねこのスクリプトの応用です。

「ずっと」ブロックの中に「10歩動かす」と「もし端に着いたら、跳ね返る」を配置します。
初期設定の向きを斜めに変えておいたことで、画面上を斜めに動き回るようになります。

【Scratch】スクラッチ 斜めに動き回るボールのスクリプト

ねこと同様、「1秒待つ」のブロックで、
スタートして1秒後にゲーム開始するようにしましょう。

以上で、すべてのスクリプトが完成です!
実際に、旗ボタンでプロジェクトを動かしてみてください。

うまく動いていますでしょうか?

Anks
「~歩動かす」の数値を変えたりすると、違ったスピードのゲームに調整することが出来ますよ。

<入門編>作ってみよう!1 については、このチャプターでおしまいです。
お疲れさまでした。

 

次の <入門編>作ってみよう!2 では、
ゲームの条件などを作っていくのに欠かせない変数や演算について、
また実際に作品を作りながら学んでいきたいと思います!

今回もありがとうございました。

→次回 <入門編>3-1 りんごを数えてもらおう!(変数/クローン/メッセージ)に進む


※なお、マウスに近すぎるとねこがかたかたクルクルする現象を回避するには、
「5歩動かす」のブロックの部分を、上の図のように変更します。

【Scratch】2-4スクラッチ マウスについてくる動きの改良

かんたんに解説をしますと、

この現象は、マウスが近い時、つまり、
マウスのポインターまでの距離が5歩分より短いときにも5歩動かそうとする、
ことが原因で起きてしまっているので、

もし「マウスのポインターまでの距離<5」なら、
5歩動かすのではなく、マウスのポインターまでの距離だけ動かす、

そうでなければ、
5歩動かそう

という形に、「もし~なら、でなければ~」のブロックを使って修正すればよい、ということです。

なお、条件に、「演算」欄にある不等号(<)を使っていますが、
詳しくは次回以降のチャプターで学んでいきたいと思います。

→次回 <入門編>3-1 りんごを数えてもらおう!(変数/クローン/メッセージ)に進む