Scratch(スクラッチ)

【スクラッチゲームの作り方】はじめての変数を使ったゲームの作り方 「スコア」「ライフ」編

Scratchを使ったプログラミングについて解説していくこのシリーズ第2回の今回は、「変数」を使ってスコアとライフを作る方法について解説していきます。

この記事を読むと、下のリンクにあるようなゲームを作ることができるようになります。

スコアとライフのあるシューティングゲーム

最初は難しいかもしれませんが、一度おぼえてしまえば、多くのゲームで得点やライフを作ることができるようになるので、ここで身につけておきましょう!

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

目次

まずは実験して変数がどんなものか確かめる

まずは実験して変数がどんなものか確かめてみましょう。

Scratchで新しいプロジェクトを開いたら、「コード」タブの中にある「変数」カテゴリを開きましょう。

次に、「変数」というブロックにチェックを入れると、右側の画面に「変数 1」と表示されると思います。

次に、変数カテゴリの中にある「変数を0にする」というブロックと、「変数を1ずつかえる」というブロックを出しましょう。

ここまでできたら、「変数を1ずつ変える」というブロックをポチポチとクリックしてみましょう。すると、画面の右にある変数の値が増えていくのがわかると思います。

次に、「変数を0にする」というブロックをクリックしてみましょう。変数の値が0になったと思います。

この仕組を使うと、スコアやライフ、タイマーなど、いろいろ便利なものを作ることができます。

変数を使ってシューティングゲームのスコアを作る

まずは、下のリンクのシューティングゲームで遊んでみてください。左右の矢印キーでロケットを動かし、スペースキーでビームを出して敵キャラの惑星を撃ち落とすゲームです。

https://scratch.mit.edu/projects/641366328/

このゲームは、敵をたおすことはできますが、スコア(得点)が数えられません。また、1回敵に当たっただけでゲームオーバーになってしまいます。

今回は、変数を使って、このゲームにスコアとライフを追加する方法を解説していきます。

まず、上のリンクのゲームを「リミックス」しましょう。

リミックスができたら、スコアをつくっていきます。

まずはじめに、自分のロケット(「Rocketship」スプライト」)に、「スコア」という変数をつくります。

変数というカテゴリから、「変数を作る」というボタンをクリックして、変数をつくっていきます。

次に、新しい変数名に「スコア」と名前をつけて、「OK」をクリックします。

これで、「スコア」という名前の変数を作ることができました。

続いて、敵をビームで倒したときに、「スコア」が1ずつ増えるようにします。

スペースキーを押して発射したビーム(「Lightning」スプライト)が敵キャラの惑星(「Planet2」スプライト)にぶつかると、敵キャラから「ビームが敵キャラにあたった」というメッセージが送られます。

この「ビームが敵キャラにあたった」というメッセーを受け取ったときに、「スコア」が1ずつ増えるプログラムを自分のロケットのコードにつくっていきます。

Rocketshipスプライトのコードタブを開き、イベントカテゴリから「メッセージを受け取ったとき」のブロックを出します。

ブロックを出したら、受け取るメッセージの内容を「ビームが敵キャラにあたったを受け取ったとき」に変更します。

続いて、 変数カテゴリから、「スコアを1ずつ変える」というブロックを取り出して、先ほどつくったメッセージのブロックの下につなげます。

スコアが増える仕組みはこれで完成ですが、このままだと問題があります。

この状態だと、前回プレイしたときにスコアが10点で終わったとすると、次にプレイしたときに10点からスタートしてしまいます。

これを避けるために、ゲームがはじまった時(緑の旗が押されたとき)に、スコアを「0」にするという処理を追加します。

Rocketshipプライトに、緑の旗が押されたときに、スコアを0にする、というプログラムを追加します。

すると、緑の旗を押してゲームをスタートするたびに、スコアが「0」からスタートするようになります。

このように、変数を使うときには、ゲームがはじまった時に変数がいくつからスタートするのかを決める処理を入れるのを忘れないようにしましょう。

変数を使ってライフをつくる

一度敵に当たっただけでゲームオーバーになってしまうと、ゲームとしては難しすぎます。

そこで、自分のロケットのライフを設定し、敵キャラに3回当たったらゲームオーバーになる仕組みを、変数を使ってつくってみましょう。

作り方は、スコアをつくったときとほとんど同じです。

まずは、「Rocketship」スプライトを開いて、「ライフ」という変数をつくります。

名前は「ライフ」にして、「OK」をクリックします。

次に、このライフ変数を使って、敵キャラに当たったときにライフが1ずつ減っていく仕組みを作ります。

敵キャラ(「Planet2」というスプライト)のコードの中に、「もしRocketshipに触れたなら」「ゲームオーバーを送る」というプログラムがあるので探しましょう。

「ゲームオーバー」というメッセージの名前の部分をクリックした後、続けて「新しいメッセージ」をクリックします。

メッセージの名前に「敵キャラに衝突した」と入力し、OKをクリックしましょう。

これで、自分のロケットが敵キャラにふれたときに、「敵キャラに衝突した」というメッセージが送られるようになりました。

この「敵キャラに衝突した」というメッセージを受け取ったときに、ライフが1ずつ減るというプログラムを追加していきます。

まず、Rocketshipスプライトのコードタブを開いて、イベントカテゴリから「メッセージをうけとったとき」というブロックを出し、「敵キャラに衝突した」というメッセージに変更します。

続いて、変数カテゴリーから、「変数を◯ずつ変える」というブロックを出して、先ほどの「敵キャラに衝突したとき」の下につなげます。

変数名は「ライフに」変更し、「ライフを-1ずつ変える」に変更します。

ここまでできたら、緑の旗を押してプログラムを動かしてみましょう。自分のロケットと敵キャラに当たったら、ライフが1ずつ減っていくのがわかると思います。

この状態だと、前回プレイしたライフの状態からゲームがスタートしてしまうので、ゲームがはじまったときには、必ずライフが3からスタートするようにします。

これで、ゲームがスタートしたときにライフが3からスタートして、1ずつ減っていく仕組みが完成しました。

ただし、この状態では、いつまでたってもゲームオーバーになりません。そこで、ライフが0になったら、ゲームオーバーになる処理を加えます。

演算から不等号のブロックを出して、ライフが1より小さくなったなら、「ゲームオーバー」というメッセージを送るというプログラムをつくります。

すると、ライフが「0」になると、ゲームオーバーという文字が出てきて、ゲームが終了するようになることがわかると思います。

スコア(得点)やライフ(機体の残り数)は、ゲームを作るときによく使う仕組みです。

ぜひこの機会に作り方をおぼえて、これから作るゲームに応用してみてください!

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

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

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


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

本ブログでは、Scratchを使ったゲーム制作の基本について解説していますので、ぜひご覧ください!

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

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

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

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

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

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

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

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

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

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

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

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

体験会では、お子さまが集中してプログラミングしたり、作品を作ったりしている普段とは違う姿をみられるはずです!

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

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

小学生の習い事に
MYLAB(マイラボ)のプログラミング教室&ロボット教室!

東京中目黒にあるMYLABでは、マサチューセッツ工科大学(MIT)メディアラボの教授であるミッチェル・レズニック氏が提唱する「創造的な学び」という学習理論をベースにカリキュラムを作っています。

お子さまが熱中できる問いを中心にレッスンが進行し、試行錯誤しながらミッションクリアを目指していきます。理科のように実験を行いながら“プログラミングとはどういう役割なのか?”がスムーズに理解でき、継続することで“自分で確かめる習慣”が身につきます。

またMYLABでは、世界最大級のロボコン「FIRST LEGO League」へチャレンジするカリキュラム(教室受講のみ)を通して、お子さまたちが世界にチャレンジする機会もご提供しています。

教室受講

短期集中講座

Minecraft動画クリエイター講座

通年コース

  • ロボット・プログラミング コース
  • ゲーム・プログラミング コース
  • エレメンタリーコース
  • FIRST®LEGO®League(ロボコン)チャレンジコース
  • Unityコース

オンライン受講

通年コース

  • ゲーム・プログラミング(Scratch)コース
  • 3Dゲームプログラミング(Unity)コース

無料の体験授業について

MYLABでは体験授業として、ロボット・プログラミング体験とオリジナルゲーム制作体験をご用意しています。複雑で難しいように思うかもしれませんが、少しのサポートでほとんどのお子さまが仕組みを理解し、ゴールに向けて取り組めるようになります。ゴールを導き出すまでの過程は子供によってそれぞれで、講師陣は子供たちの考えや作品を受け止め、よいところを認めながらレッスンを進めていきます。

この体験授業では、お子さまが成長できるイメージを持っていただけるかと思いますので、興味がある方はお気軽にお申し込みください。

ロボット・プログラミング教室のMYLAB(マイラボ)
教室受講・オンライン受講のコース詳細

教室受講 コース一覧

短期集中講座

Minecraft動画クリエイター講座 Minecraftチームビルディグ講座
対象 小学3年生~小学6年生 小学3年生~小学6年生
レッスン時間 4ヶ月間の短期集中講座。
90分/回
4ヶ月間の短期集中講座。
90分/回
受講料(税込) 17,600円/月 17,600円/月
学習内容 Minecraft(マイクラ)の実況動画制作 人と協力するヒューマンスキルの養成
使用ツール Minecraft Java Edition
備考

※入会金・設備利用料等はございません。

※Minecraft Java版のライセンスをお持ちでない方は、ご購入いただきます。

詳細 詳細はこちら 詳細はこちら

通年コース

エレメンタリーコース ロボット・プログラミング コース
対象 未就学~小学1年生 小学2年生~小学6年生
レッスン時間 90分/回 90分/回
受講料(税込) 18,150円/月 24,200円/月
学習内容 ブロック等を使った科学工作、
タブレットでプログラミング
ロボット・プログラミング
使用ツール Gigoブロック、Scratch Jr. レゴ©マインドストーム©EV3
備考

※上記に加え、入会金24,200円(税込、入会時のみ)と教室維持費3,630円/月を別途頂戴いたします。

詳細 詳細はこちら 詳細はこちら
ゲーム・プログラミング コース 3Dゲーム・プログラミング(Unity)コース
対象 小学2年生~小学6年生 小学5年生~高校1年生
レッスン時間 90分/回 90分/回
受講料(税込) 24,200円/月 30,250円/月
学習内容 ゲーム・プログラミング、
アニメーション作成
Unityによる2D・3Dゲームの開発
使用ツール Scratch Unity
備考

※上記に加え、入会金24,200円(税込、入会時のみ)と教室維持費3,630円/月を別途頂戴いたします。

詳細 詳細はこちら 詳細はこちら
FIRST®LEGO®League(ロボコン)チャレンジコース
対象 小学4年生~高校1年生
レッスン時間 90分/回
受講料(税込) 24,200円/月
学習内容 ロボット・プログラミング、
コラボレーション、
課題解決、
プレゼンテーション
使用ツール SPIKE™ プライム
備考

※上記に加え、入会金24,200円(税込、入会時のみ)と教室維持費3,630円/月を別途頂戴いたします。

※別途大会参加費([参考]2022-2023シーズンは41,800円 (税込))をチームの参加人数に応じてご負担いただきます。

詳細 詳細はこちら

オンライン受講 コース一覧

通年コース

ゲーム・プログラミング(Scratch)コース 3Dゲームプログラミング(Unity)コース
対象 小学2年生~中学3年生 小学5年生~高校3年生
レッスン時間 60分/回 90分/回
受講料(税込) 17,820円/月 24,200円/月
学習内容 ゲーム・プログラミング Unityを使ったゲーム・プログラミング
使用ツール Scratch Unity
備考

※オンラインコースは、入会金・教室維持費はございません。

詳細 詳細はこちら 詳細はこちら

ロボット・プログラミング教室のMYLAB(マイラボ)
入会までの流れ

体験会

体験会

  1. フォームより体験会のお申し込みをお願い致します。
  2. 教室よりお電話差し上げて、体験会の日程を決定致します。
  3. 体験会にご参加ください。

体験会は、下記の2つから選択が可能です。

  1. オンラインでのプログラミング授業(スクラッチ)のみ
  2. 教室でのプログラミング授業(スクラッチ)と、
    EV3を活用したロボットプログラミングの両方を体験出来る体験会があります。

どちらも無料となっておりますので、ぜひ、ご気軽にご参加ください。

ご面談

ご面談

体験会に参加いただいた上で、保護者様とお子さまとご面談をさせていただきます。
お子さまの現在の状況や性格などお話を聞かせていただきながら、ご家庭で考えていらっしゃる教育方針も含めて、大事なお子さまの将来のために、どのようにMYLABをご利用いただくと効果的か?
話し合いをさせていただき、入会に関するご判断をしていただきます。

ご契約

ご契約

入会に関する正式なご希望をいただきましたら、入会に向けた契約手続きをしていただきます。
MYLABの規約・契約事項・注意点をお伝えしながら、入会手続きのご契約をしていただきます。
お申し込みは、教室に来ることなくオンライン上のみでの契約手続きが可能です。

入会

入会

MYLABのカリキュラムがスタートします!
MYLABを通じて、お子さまが楽しくプログラミングを学びながら、創造性と自主性を育くんで成長していく様子を、見守ってください。
MYLABでは、子どもたちの成長の様子を保護者様にブログやSNSを通して積極的に共有させていただきます。

ぜひ、MYLABのロボット・プログラミング教室を楽しみにしていてください。

東京でロボット・プログラミング教室をお探しなら
オンライン対応のMYLAB

屋号 MYLAB(マイラボ)
運営会社 株式会社明光ネットワークジャパン(東証プライム 4668)
スクールマネージャー 楠田 健介・出射 寛人
教室住所 〒153-0051 東京都目黒区上目黒3丁目6−18 Tyビル 6階
教室電話番号 03-3760-5252
メールアドレス info@my-laboratory.jp
URL https://my-laboratory.jp/

ABOUT ME
柿沼 功
MYLAB事業責任者。経営学修士(MBA)。株式会社明光ネットワークジャパンにて、明光義塾のeラーニングシステム開発・運用の責任者をつとめ、2020年2月よりMYLAB事業に従事。
Home > 最新のお知らせ > コラム > Scratch(スクラッチ) > 【スクラッチゲームの作り方】はじめての変数を使ったゲームの作り方 「スコア」「ライフ」編