Scratch(スクラッチ)

【スクラッチゲームの作り方】シューティングゲームのゲームオーバー処理の作り方

Scratchではじめてゲームをつくりはじめた方向けに、スクラッチゲームの作り方を解説していくシリーズの第3回は、シューティングゲームを例に、ゲームオーバー処理について解説していきます。

実際の処理は、以下のプロジェクトからご確認いただくことができますので、合わせてご覧ください。

シューティングゲーム

スクラッチについてわからないことがあったら、質問を送って下さい。

ゲームオーバー処理の概要

シューティングゲームですと、敵キャラ(下の画像では惑星のキャラクター)が自分の飛行機に近づいてきて、ぶつかったらゲームオーバー画面を表示してゲームを終了するという処理があります。

惑星が飛行機にぶつかる

キャラクターを非表示にして「GAME OVER」の文字を表示する

このような処理を実現するためには、(1)ゲームオーバーになる条件を決める、(2)ゲームオーバーの条件を満たしたときに実施する処理を決める、という2つの手順が必要になります。

細かく見ていくと、このゲームの例では、以下のような処理が行われています。

  1. 飛行機と敵キャラがぶつかったらゲームオーバー処理をスタートさせる
  2. キャラクターを非表示にする
  3. 「GAME OVER」の文字を表示する

ゲームオーバーの条件は「飛行機と敵キャラがぶつかること」、ゲームオーバーの条件を満たしたときに実施する処理は「キャラクターを非表示にすること」と「GAME OVER」の文字を表示するの2つです。

それでは、実際の作り方をみてみましょう。

飛行機と敵キャラがぶつかったらゲームオーバー処理をスタートさせる

このシューティングゲームでは、以下のようなプログラムで、ゲームオーバーの処理がはじまる仕組みが作られています。

このプログラムは、自分の飛行機(スプライト名「Rocketship」)の中に作っています。

まず、自分の飛行機が、敵キャラ(スプライト名「Planet2」)に触れたら、「ゲームオーバーを送る」というメッセージを送ったあと、自分の飛行機を「隠す」仕組みになっています。

「ゲームオーバーを送る」というメッセージは、受け手のキャラクターがいて、このメッセージを受け取ったキャラクター側で続きのゲームオーバー処理が動きはじめます。

敵に3回当たったらゲームオーバーにする

次に、自分の飛行機がライフを持っていて、3回敵の攻撃に当たったらゲームオーバーをスタートさせる処理の作り方を解説します。

ライフをもらせるときは、ライフという変数を作って、緑の旗が押されてゲームがはじまったときに、ライフが3でスタートするようにします。

続いて、ライフが0になったときに、ゲームオーバー処理がスタートするようなプログラムを作ります。

敵に3回ふれたらゲームオーバー処理をスタートさせる方法は、下のプロジェクトで確認いただくことができますので、合わせてご確認ください。

シューティングゲーム(スコア・ライフあり)

キャラクターを非表示にする

ゲームオーバーになったら、「GAME OVER」の文字を表示しますが、そのときに画面の中にキャラクターが残っていない方が良いので、画面から隠します。

先ほど、自分の飛行機「Rocketship」から、「ゲームオーバーを送る」というメッセージを送信しました。

そこで、敵キャラ(Planet2)で、このメッセージを受け取ったときに、下のプログラムで画面から「隠す」ようにします。

同じように、ゲームオーバーになったときに、画面に出ていてほしくないものがあれば、同じプログラムを作ります。

なお、「すべてを止める」というプログラムは、このゲームのすべてのプログラムを終了させる処理になっています。

「GAME OVER」の文字を表示する

最後に、「GAME OVER」の文字を表示させましょう。

「背景を変えて表示させる方法」と「スプライトで表示させる方法」がありますが、今回はスプライトで表示させる方法をご紹介します。

まず、新しいスプライトをつくって、「GAME OVER」の文字を入力しましょう。大きさや色も自分の好みに変えておいてください。

「GAME OVER」の文字を作ることができたら、次にプログラムを作ります。

まず、先ほど自分の飛行機(Rocketship)から送られた「ゲームオーバーをうけとったとき」に、この文字を表示するプログラムを作りましょう。

ここで注意が必要なのは、メッセージを受け取ったときに「GAME OVER」の文字を表示するプログラムだけですと、その後何度ゲームをプレイしても、「GAME OVER」の文字が表示されたままになってしまいます。

そこで、緑の旗が押されてゲームがはじまったときには、「隠す」というプログラムを作っておきましょう。こうすることで、ゲームがはじまったときに「GAME OVER」の文字が表示されなくなります。

スクラッチについてのご質問を受けつけています

プログラミング教室MYLABでは、スクラッチについてのご質問を受けつけています。わからないことやうまく行かないことがありましたら、以下のフォームより送信して下さい。

※質問は、保護者の方から送信をお願い致します。
※ご質問の回答には、お時間を要することや、答えできないことがあることを、あらかじめご了承ください。
※ご質問の回答は、MYLABホームページ上に掲載致します。回答を掲載しましたら、メールにてご案内致します。


ゲーム制作やプログラミングをさらに学びたい方へ!

本ブログでは、「ゲームオーバー処理」以外にも、いくつかのゲーム制作の方法について解説していますので、ぜひご覧ください!

「お家でやったけれども、うまくいかなかった」「さらに高度なことをやってみたい!」という方へ

最近は、プログラミングを学習するためのアプリや本、無料のプラットフォームも増えてきて、子どもたちがプログラミングを学習する機会や環境も整ってきました。

しかし、保護者の方とお話ししていると

  • あきてしまって、長続きしなかった
  • 本やアプリで自習してみたけど、うまくいかなかった
  • 保護者の方がプログラミングの経験がなく、子どもに教えるのが難しい

といったお話をよくうかがうことも多いです。

そんな方は、一度当ブログを運営するプログラミング教室MYLABのレッスンを体験してみませんか?

MYLABのレッスンの特徴は以下のような特徴があります。

  • お子さまが楽しくプログラミングを続けることができるカリキュラム
  • 一人ひとりの「創りたい!」にこたえられる知識を持ち、成長をサポートできるメンター陣
  • 初学者だけでなく、ロボコンにチャレンジしたり、本格的な3Dゲームをつくったりする上級コースまで継続できる

「本当に楽しめるのかな?」「うちの子に合うかしら?」「飽きっぽいうちの子が続けられるかしら?」と思う方もいるかもしれません。

そんな方は、ぜひ一度無料で開催している体験レッスンに来て、実際に体験してみてください!

ゲーム・プログラミング体験(90分)

  • どんなゲームをつくることができるのか、まずは遊んでみる
  • ミッションをクリアするためのアイデアを考える
  • コーチのサポートを受けながら、自分のアイデアを実現する!

ご興味をもっていただいた方は、ぜひ下のボタンからお申し込みください!

オンラインまたはMYLAB中目黒校での
体験授業お申込みはこちら

ABOUT ME
柿沼 功
MYLAB事業責任者。経営学修士(MBA)。株式会社明光ネットワークジャパンにて、明光義塾のeラーニングシステム開発・運用の責任者をつとめ、2020年2月よりMYLAB事業に従事。