Scratch(スクラッチ)での「落ちてくる障害物を避けるゲーム」作り、5回目の今回は、雪がネコにぶつかったときの仕組みを作っていきましょう。
ゲームのルールを確認しておく
このゲームは雪を避けるゲームなので、避けきれずにぶつかったらペナルティによりネコのライフポイントが-1される。3度ぶつかってライフがゼロになったらゲームオーバーというルールです。
このルールを実行するために必要な設定をまずは確認しておきます。
- 雪がネコにぶつかったら、そのことを知らせるメッセージを送る
- ネコの最初のライフ数を設定する(今回は3)
- ぶつかったメッセージを受け取ったらライフを1減らす
- ライフが0になったらそのことを知らせるメッセージを送る
- ライフが0になった知らせを受け取ったら、ネコと背景をゲームオーバーの状態に切り替える
だいたいこのような流れになります。
雪がネコにぶつかったらメッセージを送る
上の流れに沿って、まずは雪のスプライトに「ねこにぶつかったら、そのことを知らせる」という設定をしていきます。
「もし○○」の条件は「調べる」のブロックで指定
今回のゲームでは、落ちてくる雪を避ける場合も、ぶつかる場合もあります。そんな状況で「ぶつかった」ときにだけ何かをさせたいときは、「もし○○」ならブロックを使います。
「スクリプト」の「制御」から、「もし○○なら」ブロックをスクリプトエリアに追加しましょう。
「もしも」の条件をネコにぶつかったときにするには、「調べる」にある「マウスのポインターに触れた」をドラッグして、「もし○○なら」の条件部分に重ねてはめ込みます。
次に「マウスのポインター」部分の▼をクリックして、ネコのスプライトである「Sprite1」に変更します。これで「もしもネコに雪がぶつかったとき」という設定ができました。
メッセージを送って知らせる設定をする
雪がぶつかったことをネコに知らせるには、会話のやり取りなどで使用した「メッセージを送る」機能を使います。
「イベント」から「メッセージを送ったとき」ブロックをドラッグして、図のように配置したら、「ヒット」という新しいメッセージを作りましょう。
メッセージブロックの詳しい使い方
メッセージブロックの使い方は、こちらの記事で紹介しています。詳しく知りたい方はこちらをご覧ください。
ゲームをプレイしている人に自分のミスがわかりやすいよう、雪がネコにぶつかったときに「ニャー」という音を出す設定も加えました。「スクリプト」の「音」にある「meowの音を鳴らす」ブロックを入れればOKです。
さらにぶつかった雪だけは、その場で消えるようにしたいので、「スクリプト」の「制御」にある「このクローンを削除する」ブロックを図のように付けます。
音ブロックの詳しい使い方
メッセージブロックの使い方は、こちらの記事で紹介しています。詳しく知りたい方はこちらをご覧ください。
タイミングと期間を決める
3度まではぶつかってもOKというルールなので、ぶつかったことを知らせる仕組みが1度発動しただけで終わってしまっては困ります。
そこでこの設定を繰り返すため、「スクリプト」の「制御」にある「ずっと」ブロックで図のように挟みました。
さらにこの仕組みを動かし始めるきっかけとして、「クローンされたとき」のブロックを付けておきます。
これで雪がネコにぶつかったときに、「ぶつかった!」というメッセージを発信する設定はOKです。
ここまでくれば、このゲームもあと少しで完成です。
次回はネコにライフを設定して、障害物に当たったら1ずつ減らすという設定をしていきます。