1. HOME»
  2. プログラミング・Web»
  3. Scratch»
  4. Scratchでシューティングゲームを作ろう! 小学生からのプログラミング入門

Scratchでシューティングゲームを作ろう! 小学生からのプログラミング入門

さて、プログラミングの勉強をはじめていきましょう!

前回の「Scratchでじゃんけんゲームを作ろう!」では、じゃんけんゲームの作り方を学びました。
今回は、もうちょっと本格的(ほんかくてき)なゲーム、ということで、シューティングゲームを作ってみようと思います。

目次
  1. プロローグ
  2. 登場人物(とうじょうじんぶつ)
  3. シューティングゲームを作ってみよう!
  4. 使いたいスプライトを選択してみよう!
  5. ドラゴンを操作(そうさできるようにしよう!)
  6. 敵(てき)キャラの設定(せってい)をしていこう!
  7. 当(あ)たり判定(はんてい)を作ってみよう!
  8. ドラゴンがやられたとき、動きをストップさせてみよう!
  9. 得点(とくてん)を作ってみよう
  10. 背景(はいけい)を表示してみよう!
  11. エピローグ

プロローグ

アル

よし!

りこ

どうしたの? 急(きゅう)に声出して

アル

山田先生に教えてもらったじゃんけんゲーム、同じように自分で作ってみたらうまくいったんだ

りこ

わぁ、すごいじゃない。じゃあそろそろ次のステップにいきたいね

アル

そうだ、今から山田先生にききにいこうよ!

登場人物(とうじょうじんぶつ)

山田先生

ねこの先生。
プログラミングが大得意で、JavaScript(ジャバスクリプト)、Java(ジャバ)、C言語(シーげんご)、Python(パイソン)に至(いた)るまで様々なプログラミングの知識があり、ねこパンチの如(ごと)く1秒で10文字のキー入力が可能。
「てやんでぇ、べらぼうめ!」が口癖(くちぐせ)。しかし実は江戸っ子ではない。
ディズニーランドに行くことを夢見ている。

りこちゃん

りこ

プログラミングが大好きで、少しだけプログラムを書くことができる。得意な言語はJavaScript
(ジャバスクリプト)
。
錦戸(にしきど)君が好きで好きでたまらない。関ジャニを抜けても、いまも好き。はやく大人になって錦戸君のお嫁(よめ)さんになることを夢見ている。
元気が良く、活発な女の子。ちょっとお節介(せっかい)。

アル君

アル

ゲームが好きで、特にポケモンが大好き。
プログラミングははじめてで、まだよく分からない。それでも、ゲームを一度は作ってみたい。
授業中はいつも、居眠りか、ポケモンのことを考えている。よくりこちゃんに注意される。
プログラミングに興味(きょうみ)はあるのだが、全く分からないので集中できず、ついポケモンのことを考え始めてしまう。
山田先生という名前は聞いたことがあったが、ねこだということを最近(さいきん)まで知らなかった。

シューティングゲームを作ってみよう!

山田

お、来たべな?

りこ

うん、アルが次(つぎ)を教えてほしいって!

アル

なんで毎回(まいかい)ぼくを理由(りゆう)にするかな……

山田

そうだべな……基本(きほん)のおさらいも兼(か)ねてシューティングゲームなんてどうだべか?

りこ

シューティングゲームが作れるの? すごーい!

アル

わーい!


シューティングゲームは弾(たま)を撃(う)ちながら、敵(てき)を倒(たお)していくゲームです。
2D(平面)のものであれば、基本的(きほんてき)に縦(たて)と横(よこ)のバージョンがあります。

2Dシューティングゲームは、ゲームプログラミングの基本的なことがしっかりと詰(つ)め込(こ)まれていて、それであって複雑(ふくざつ)なことは必要(ひつよう)としないので、ゲームづくりをはじめたばかりの人は、まず作ってみると勉強になります。

今回、作っていくゲームはこちらです。
もしうまく読み込めていない場合(ばあい)は、Flashを有効(ゆうこう)にしてください。

操作方法
方向キー : 移動
スペースキー : 弾を撃(う)つ
旗(はた)マークをクリックすることで、ゲームをはじめたり、再開(さいかい)することができます。

使いたいスプライトを選択してみよう!

山田

まずは使いたいスプライトを選(えら)ぶべよ

りこ

うーん、ねこちゃんも可愛(かわい)いけど、どうしようかなぁ

山田

そのねこはわだずの最大(さいだい)のライバルだべよ

りこ

ライバル?

山田

ちょっとだけわだずよりも可愛いべよ

りこ

たしかに、山田先生より可愛いね!

山田

てやんでぇ、べらぼうめ! そこは否定するところだべよ!

アル

えっと、やっぱりかっこいいドラゴンがいいな!


スプライトを選ぶ前に、チュートリアルは閉(と)じておきましょう。

scratch

では、スプライトを選んでみましょう。
使うスプライトは、スプライトペイン(スプライトリスト)で管理(かんり)します。

scratch

最初の状態(じょうたい)では、スプライトペイン(スプライトリスト)はこのようになっています。

scratch

ねこのスプライトは、シューティンゲームに使わないので、削除(さくじょ)しておきましょう。

scratch

新(あたら)しいスプライトをライブラリーから追加(ついか)します。
画像(がぞう)の部分(ぶぶん)をクリックしてください。

scratch

スプライトライブラリーが開くので、スプライトを選びます。

scratch

スプライトはなにを選んでもいいのですが、今回はカテゴリーの「ファンタジー」にある、「Dragon」にしました。
ダブルクリックで追加(ついか)できます。

scratch

このように、スプライトがスプライトリストに追加されます。

scratch

おなじ要領(ようりょう)で、敵(てき)キャラも追加します。
下の画像の場所をクリックします。

scratch

カテゴリーの「ファンタジー」をクリックして、こんどは「Ghost」をダブルクリックします。

scratch

スプライトリストに「Ghost」が追加されました。

scratch

こんどはドラゴンが敵を攻撃(こうげき)するときに使う、弾(たま)のスプライトを追加します。
下の画像のところをクリックします。

scratch

「Ball」をダブルクリックします。

scratch

これでスプライトリストには、3つのスプライトが追加されたことになります。

scratch

ドラゴンを操作(そうさできるようにしよう!)

ここではドラゴンをプレイヤーとして操作(そうさ)できるようにしていきます。
操作できるようにというのは、方向キーでドラゴンを動(うご)かしたり、スペースキーで弾(たま)を撃(う)たせたりできるようにします。

ドラゴンを動かしてみよう!

山田

じゃあ、このドラゴンを動かしてみるべよ


ではこのゲームの主人公であるドラゴンを動(うご)かしてみましょう。
①まず、「Dragon」スプライトを選択(せんたく)します。
②「イベント」をクリックします。
③「旗(はた)マークがクリックされたとき」をコードエリア(スクリプトエリア)にドラッグします。

scratch

①「制御」をクリックし、②「ずっと」ブロックをスクリプトエリアにドラッグして、「旗マークがクリックされたとき」ブロックにつなげます。

scratch

「もし〜なら」ブロックを、「ずっと」ブロックの中にはめこみます。

scratch

①「調べる」をクリックし、②「スペースキーが押された」を「もし〜なら」ブロックの六角形にドラッグします。

scratch

①「スペース」をクリックし、②「上向き矢印」に変更します。

scratch

①「動き」をクリックし、②「y座標を10ずつ変える」を「もし上向き矢印キーが押されたなら」ブロックの間(あいだ)に入れます。

scratch

「もし上向き矢印キーが押されたなら」ブロックを右クリックして、「複製」をクリックし、「ずっと」ブロックの中に4つ作ります。

scratch

このようになります。

scratch

下2つの「y座標を10ずつ変える」を右クリックで削除(さくじょ)します。

scratch

さきほど削除した「y座標を10ずつ変える」があった部分(ぶぶん)、に「x座標を10ずつ変える」を入れます。

scratch

以下のように、しるしの部分を書き換えます。

scratch

ステージの旗(はた)マークをクリックすると、ドラゴンが上下左右、自在(じざい)に動くようになります。

scratch

ドラゴンの初期設定をしよう!

アル

うーん、すぐにドラゴンが端(はし)にきちゃって、ほとんど動けないよ

山田

そうだべな。じゃあ、ドラゴンの大きさを小さくしてみるべよ

りこ

それならたくさん移動(いどう)できるようになるね!


さて、このままではドラゴンの移動スペースが少なすぎて、ゲームとしてプレイしにくいです。
また、旗マークをクリックしたとき、ドラゴンはそのときいた位置からのスタートとなってしまいます。

そこで、ちゃんとゲームとして成(な)り立つように、ドラゴンの初期位置(しょきいち)やサイズを設定(せってい)していきましょう。

「x座標を〜、y座標を〜にする」ブロックを、「旗マークがクリックされたとき」ブロックと、「ずっと」ブロックの間に入れます。

scratch

じゃんけんゲームを作ったときは、スプライトの設定部分(せっていぶぶん)で大きさを変えましたが、今回は、ブロックをつかってみます。

①「見た目」を選択し、②「大きさを100%にする」ブロックを、「x座標を〜、y座標を〜にする」ブロックと、「ずっと」ブロックの間に入れます。

scratch

下の画像のように、「x座標を(-160)、y座標を(0)にする」、「大きさを(40)%にする」に変えます。

scratch

ステージの旗(はた)マークをクリックすると、ドラゴンが右端(みぎはし)に移動(いどう)し、サイズも小さくなります。
これによって、ドラゴンが移動できる範囲(はんい)も広くなり、ゲームらしさがでてきます。

scratch

弾(たま)を撃(う)てるようにしてみよう

山田

じゃあ、弾(たま)を撃(う)てるようにしてみるべよ

りこ

いよいよシューティングっぽくなるね

アル

かっこいいの作るぞ!


こんどは、スペースキーでドラゴンが弾を撃てるようにしてみます。

弾は一定間隔(いっていかんかく)で、大量に撃てるようにしたいので、たくさんの弾をつくる必要(ひつよう)があります。
……しかし、スプライトペイン(スプライトリスト)に複数の弾を作成する必要はありません。
Scratch(スクラッチ)ではクローンという機能(きのう)がありますので、そちらを使っていきます。

では、スプライトリストから①「Ball」を選択し、②「イベント」を選びます。③「旗マークがクリックされたとき」をドラッグしてスクリプトエリアにドラッグします。

scratch

①「制御」を選択し、②「ずっと」ブロックを「旗マークがクリックされたとき」ブロックにつなぎます。

scratch

「ずっと」ブロックの中に、「もし〜なら」ブロックを入れます。

scratch

①「調べる」を選択(せんたく)し、②「スペースキーが押された」を「もし〜なら」ブロックの六角形にドラッグします。

scratch

①「動き」を選択し、②「x座標を〜、y座標を〜にする」を、「もしスペースキーが押されたなら」にドラッグします。

scratch

①「調べる」を選択し、②「〜の〜」ブロックを「x座標を〜、y座標を〜にする」のそれぞれの数が書かれた円の中に入れます。

scratch

下の画像のように、「x座標を(Dragon)の(x座標)」、「y座標を(Dragon)の(y座標)」というふうに変更(へんこう)します。

scratch

①「制御」を選択し、「自分自身のクローンを作る」ブロックを、「x座標を(Dragon)の(x座標)」、「y座標を(Dragon)の(y座標)」ブロックの下につなぎます。

scratch

「クローンされたとき」をスクリプトエリアにドラッグします。

scratch

「ずっと」ブロックを「クローンされたとき」につなぎます。

scratch

①「動き」を選択し、②「x座標を10ずつ変える」ブロックを「ずっと」ブロックに入れます。

scratch

これでスペースキーを押すと弾が撃てるようになりますが、ドラゴンの部分と画面のふちに弾が残(のこ)ってしまいます。

scratch

そこで、①「見た目」を選択し、②「隠す」ブロックを「旗マークがクリックされたとき」ブロックと「ずっと」ブロックの間にドラッグします。

scratch

さらに、「クローンされたとき」と「ずっと」ブロックの間に、「表示する」ブロックをドラッグします。

scratch

これでドラゴン部分の弾が消えます。
こんどは、弾が画面のふちにきたときに、弾を消(け)すようにしていきましょう。

①「制御」をクリックし、②「もし〜なら」ブロックを「x座標を10ずつ変える」ブロックの下にドラッグします。

scratch

①「調べる」をクリックし、②「〜に触れた」を「もし〜なら」ブロックの六角形にドラッグします。

scratch

下の画像のように、「マウスのポインター」を「端」に変更します。

scratch

①制御をクリックし、②「このクローンを削除する」ブロックを「もし端に触れたなら」の中にドラッグします。

scratch

これで画面の端(はし)に触(ふ)れた弾を消すことができます。

scratch

しかしまだ弾と弾との間隔(かんかく)が小さすぎて、弾っぽくないですよね。
そこで、弾を撃ったあと、ほんの少しだけ待つというふうにしてみましょう。

画像のように、「1秒待つ」ブロックを「自分自身のクローンを作る」ブロックの下にドラッグします。

scratch

画像のように、「1秒待つ」ブロックの1という数値を0.3に変更します。

scratch

すると下の画像のように、弾が一定間隔で発射(はっしゃ)されるようになります。

scratch

あとは弾のサイズが大きいので、小さくしてみましょう。
①「見た目」をクリックし、②「大きさを100%にする」を「旗マークがクリックされたとき」の下にドラッグします。

scratch

さきほどドラッグしてきた「大きさを100%にする」の100の部分を「40」に変更します。

scratch

動かしてみると、弾が小さくなっていることが分かります。

scratch

敵(てき)キャラの設定(せってい)をしていこう!

アル

はやく敵(てき)キャラも動かしたいよ!

りこ

うんうん!

山田

まぁまぁ、これから作るべからちょっと待(ま)つべよ


では敵キャラのゴーストを動かしていきましょう。
今回、敵キャラは画面向かって右端(みぎはし)から左端(ひだりはし)へ一直線(いっちょくせん)に移動(いどう)する、という動きにしていこうと思います。

①ゴースト(Ghost)スプライトを選択(せんたく)し、②「イベント」をクリックします。
さらに、③「旗(はた)マークがクリックされたとき」ブロックをスクリプトエリアにドラッグします。

scratch

敵キャラの向(む)き、回転(かいてん)をどうするか、最初の位置(いち)を、設定(せってい)していきます。

まずは、敵キャラの回転方法を設定していきましょう。
敵キャラは画面向かって右から左へ移動させたいので、今の状態(じょうたい)から反転(はんてん)させたいわけです。
しかし、上下の回転は必要(ひつよう)ありませんね。
そこで回転方法は、左右のみに回転するようにします。

①「動き」をクリックし、②「回転方法を左右のみにする」を「旗マークがクリックされたとき」の下へドラッグします。

scratch

これで敵キャラが左右のみの回転方法になったので、角度(かくど)を変えても上下には回転しなくなりました。
では、この状態で敵キャラが左を向くように、角度を変更してみましょう。

「90度に向ける」ブロックを「回転方法を左右のみにする」ブロックの下にドラッグします。

scratch

さきほどドラッグした「90度に向ける」ブロックの数値(すうち)を「-90」に変更します。

scratch

画像の左右の違いが少ないので、ちょっと分かりにくいですが、ステージの旗マークをクリックすることで、敵キャラが左右に反転します。

scratch

次に、敵キャラの位置(いち)を変更します。
y座標(ざひょう)はのちほどランダムで設定しようと思いますので、今回はx座標のみ設定します。

「x座標を〜にする」ブロックを「-90度に向ける」ブロックの下にドラッグします。

scratch

さきほどの「x座標を〜にする」ブロックの値を変更します。今回は「215」に変更しましょう。

scratch

ステージの旗マークをクリックすることで、敵キャラが画面のすみに移動しました。

scratch

敵キャラが大きすぎるので、サイズを変更していきましょう。
①「見た目」をクリックし、②「大きさを100%にする」ブロックを、「x座標を215にする」ブロックの下にドラッグします。

scratch

さきほどドラッグしてきた「大きさを100%にする」ブロックの値を、「40」に変更します。

scratch

旗マークを押すと、このように、敵キャラの大きさが40%のサイズになりました。

scratch

さて、敵キャラは無限(むげん)に出現させたいので、繰(く)り返(かえ)し(ループ)を使います。
①制御をクリックし、②「ずっと」ブロックを「大きさを40%にする」ブロックの下にドラッグします。

scratch

敵キャラのy座標の位置を、ランダムで設定しましょう。
①「動き」をクリックし、②「y座標を〜にする」ブロックを「ずっと」ブロックの中にドラッグします。

scratch

①「演算」をクリックし、②「〜から〜までの乱数」を先ほどドラッグしてきたブロックの数値のところにドラッグします。

scratch

値を「(180)から(-180)」までの乱数に変更します。

scratch

①「制御」をクリックし、②「自分自身のクローンを作る」ブロックを「y座標を180から-180までの乱数にする」ブロックのしたにドラッグします。

scratch

そして、クローンが作られたときにどうしたいのかを書いていきます。
「クローンされたとき」をスクリプトエリアにドラッグします。

scratch

敵キャラはつねに右から左へ移動させたいので、繰り返し(ループ)を使います。
「ずっと」ブロックを「クローンされたとき」の下にドラッグしてつなぎます。

scratch

①「動き」をクリックし、②「x座標を〜ずつ変える」を「ずっと」ブロックの中にドラッグします。

scratch

さきほどのブロックの値を「-5」に変更します。

scratch

これで敵キャラも移動するようになりましたが、このままでは画面向かって左端(ひだりはし)に、敵キャラがたくさんたまってしまいます。

scratch

なので、敵キャラが画面の端(はし)に行ったら、削除(さくじょ)するようにしてみましょう。

①「制御」をクリックし、②「もし〜なら」ブロックを「x座標を-5ずつ変える」ブロックの下にドラッグします。

scratch

①「調べる」をクリックし、②「マウスのポインターに触れた」を「もし〜なら」ブロックの六角形の部分(ぶぶん)にドラッグします。

scratch

「マウスのポインター」をクリックし、「端」に変更します。

scratch

①「制御」をクリックし、②「このクローンを削除する」ブロックを「もし端に触れたなら」の中にドラッグします。

scratch

この状態(じょうたい)でステージの旗マークをクリックすると、敵キャラが左に向かって移動していき、画面の端(はし)にたどり着くと消えるようになります。

scratch

ただクローンの数が多すぎますね。
なので、敵キャラを表示する間隔(かんかく)を少しあけてみましょう。

「1秒待つ」ブロックを「自分自身のクローンを作る」ブロックの下にドラッグします。

scratch

さきほどドラッグしてきた「1秒待つ」ブロックの値を「0.5」に変更します。

scratch

ステージの旗マークをクリックすると、このように、ちょうどいいタイミングで、敵キャラが表示されるようになります。

scratch

しかし、まだ画面向かって右側に、敵キャラが止まった状態で表示されてしまっています。
この敵キャラを非表示(ひひょうじ)にしましょう。

①「見た目」をクリックし、②「隠す」ブロックを「大きさを40%にする」ブロックの下にドラッグします。

scratch

「表示する」ブロックを「クローンされたとき」ブロックの下にドラッグします。

scratch

これで画面右端に停止していた敵キャラがいなくなりました。

scratch

当(あ)たり判定(はんてい)を作ってみよう!

山田

ここからは当(あ)たり判定(はんてい)を作っていくべよ

アル

当たり判定って?

山田

弾(たま)が敵キャラに当たったことや、敵キャラがドラゴンに当たったことを判定することだべよ

りこ

わー、それができたらもうシューティングゲームだね!


さて、ゲームがだんだんと形になってきましたが、まだ足りないものがあります。
それは当たり判定です。

当たり判定というのは、弾が敵キャラに当たった時や、敵キャラにドラゴンが当たった時に、どのようなことをしたいかということです。
今回は、弾が敵キャラに当たったときは敵キャラを消し、敵キャラにドラゴンが当たったときはゲームオーバーというふうにします。

弾が敵キャラに当たった時の当たり判定

まず、弾が敵キャラに当たったときに、敵キャラを消(け)すというのを作ってみます。
①スプライトはゴースト(Ghost)を選択(せんたく)した状態(じょうたい)で、②「制御」をクリックし、③「もし〜なら」ブロックを「もし端に触れたなら」ブロックの下にドラッグします。

scratch

①「調べる」をクリックし、②「マウスのポインターに触れた」を「もし〜なら」ブロックの六角形にドラッグします。

scratch

「マウスのポインター」をクリックし、「Ball」に変更(へんこう)します。

scratch

①「制御」をクリックし、②「このクローンを削除する」ブロックを「もしBallに触れたなら」ブロックの中にドラッグします。

scratch

これで、弾(たま)が敵キャラに当たったときに、敵キャラが消(き)えるようになります。

scratch

ドラゴンが敵キャラに当たった時の当たり判定

プレイヤーが操作(そうさ)しているドラゴンが敵キャラに当たってしまったときの当たり判定を作っていきます。

①スプライトリストのドラゴン(Dragon)を選択し、②「もし〜なら」ブロックを「ずっと」ブロックの中の一番下にドラッグします。

scratch

①「調べる」をクリックし、②「マウスのポインターに触れた」を、一番下にある「もし〜なら」の六角形の中にドラッグします。

scratch

「マウスのポインター」の右隣の▼をクリックし、「Ghost」に変更します。

scratch

①「見た目」をクリックし、②「こんにちは!と言う」ブロックを「もしGhostにふれたなら」ブロックの中にドラッグします。

scratch

敵と触(ふ)れたとき(やられたとき)に、「こんにちは!」ではまずいので、「お……覚えてろよー!」に変更します。

scratch

するとドラゴンが敵キャラに触れたとき、ドラゴンが「お……覚えてろよー!」と言うようになります。

scratch

ドラゴンがやられたとき、動きをストップさせてみよう!

今の状態(じょうたい)ですと、ドラゴンがやられても「お……覚えてろよー!」と言うだけで、そのままゲームがつづいてしまいます。
そこで、ドラゴンがやられたときに、その動(うご)きをストップするようにしてみましょう。

作り方は、ゲームが動いているか止まっているかを判断(はんだん)する変数(へんすう)を作成する方法です。
その変数が0の場合(ばあい)ゲームは止まっている、1の場合動いているというふうにします。

①スプライトは「Dragon」が選択(せんたく)された状態(じょうたい)で、②「制御」をクリックし、③「もし〜なら」ブロックを「ずっと」ブロックの一番上にドラッグします。
すると自動的(じどうてき)に「ずっと」ブロックの中身が「もし〜なら」ブロックの中に入ります。

scratch

①「演算」をクリックし、「○=○」を「もし〜なら」ブロックの六角形にドラッグします。

scratch

ではここで変数を作ります。
①「データ」を選択し、②「変数を作る」をクリックします。

scratch

変数名は「ゲームオーバー」と入力し、「OK」をクリックします。

scratch

作られた「ゲームオーバー」を「もし○=○なら」ブロックの手前の○にドラッグします。

scratch

うしろの○には「0」と入力します。

scratch

これでゲームオーバーという変数が「0」のときのみ、ドラゴンの操作(そうさ)ができるということになります。
なので、初期設定(しょきせってい)では、この「ゲームオーバー」という変数の値(あたい)が0でないといけません。

「ゲームオーバーを0にする」ブロックを「大きさを40%にする」ブロックのうしろにドラッグします。

scratch

さらに「ゲームオーバーを0にする」ブロックを「お……覚えてろよー!と言う」ブロックの下にドラッグします。

scratch

あとから追加(ついか)した、「ゲームオーバーを0にする」の値を「1」に変更します。

scratch

これで敵キャラにドラゴンが触(ふ)れたとき、ドラゴンは「お……覚えてろよー!」と言ったまま動けなくなります。
しかしまだ、スペースキーで弾(たま)を撃(う)つことはできてしまいますので、そちらも直(なお)していきましょう。

直し方は、さきほどとほぼおなじです。

①スプライトリストから「Ball」を選択し、②「制御」をクリック、③「もし〜なら」ブロックを「ずっと」ブロックの中の一番上にドラッグします。

scratch

①「演算」をクリックし、②「○=○」ブロックを「もし〜なら」の六角形にドラッグします。

scratch

①「データ」をクリックし、「ゲームオーバー」変数を「○=○」ブロックの手前の○にドラッグします。

scratch

うしろの○には「0」と入力します。

scratch

これでドラゴンが敵キャラに触れると、動くことも弾を撃つこともできなくなります。

scratch

得点(とくてん)を作ってみよう

アル

ほとんどシューティングゲームなんだけど、なんだか物足りないんだよなぁ

りこ

そうよね。なにが足りないんだろう……

山田

きっと得点(とくてん)だべよ。高得点をとるという目標(もくひょう)ができてこそ、ゲームが楽しくなるんだべよ

りこ

あ、そっか! 得点か!


敵(てき)キャラを倒(たお)すごとに得点を足し算していくようにしてみましょう。
得点は変数(へんすう)を使って計算(けいさん)しますので、「得点」という変数を作ります。

では「変数」を作るをクリックします。

scratch

変数名は「得点」にし「OK」をクリックします。

scratch

ゴースト(Ghost)を倒したときに、得点に100ポイント足し算する、というふうにしたいと思います。

①スプライトペイン(スプライトリスト)から「Ghoul」を選択(せんたく)し、②「〜を〜ずつ変える」ブロックを「もしBallに触れたなら」ブロックの中にドラッグします。

scratch

さきほどの「〜を〜ずつ変える」ブロックの値(あたい)を「(得点)を(100)ずつ変える」に変更(へんこう)します。

scratch

これでステージ上に得点が表示(ひょうじ)されるようになりました。

scratch

「ゲームオーバー」変数が表示されたままになってしまっていますが、これはゲームの裏側(うらがわ)で操作(そうさ)したい変数なので、ステージ上に表示しておく必要(ひつよう)はありません。
そこで、この「ゲームオーバー」変数を非表示(ひひょうじ)にしてみます。

「旗(はた)マークがクリックされたとき」の後ろに「変数ゲームオーバーを隠す」をドラッグします。
もし、「変数得点を隠す」になっていた場合(ばあい)は、ゲームオーバーになおします。

scratch

これで「ゲームオーバー」変数が非表示になりました。

scratch

さらに、「得点」の変数を初期化(しょきか)する必要があります。
初期化しないと、ゲームをプレイした後、もう一度プレイしようとした時に、得点がそのままの状態(じょうたい)からはじまってしまいます。

そこで「〜を0にする」ブロックを「変数ゲームオーバーを隠す」ブロックのうしろにドラッグします。

scratch

「得点を0にする」になおします。

scratch

これでゲームをはじめるごとに、得点の変数が0に初期化されます。

背景(はいけい)を表示してみよう!

山田

背景(はいけい)が真っ白ってのも寂しいべな……

アル

あ、たしかに。えぇっ、背景も選(えら)べるの?()

山田

てやんでぇ、べらぼうめ! もちろんだべよ

りこ

背景は錦戸(にしきど)くんのライブ画像にしましょ!

山田

ほう……、まぁ、あまりゲームには合わんべな

アル

なんですぐ錦戸くんなんだよ……ちぇ()


シューティングゲームもそろそろ完成(かんせい)に近づいてきました。
最後に背景を設定してみましょう。

スプライトペイン(スプライトリスト)の隣(となり)に、背景を設定(せってい)するところがあります。
そこのアイコンをクリックしてみましょう。

scratch

すると、背景を選(えら)ぶことができます。

scratch

今回はslopesを選びました。

scratch

おめでとうございます。これでシューティングゲームの完成です。

scratch

エピローグ

Scratch(スクラッチ)を使って、実際(じっさい)にゲームを作ってみることで、どういったふうにプログラミングしていくのかというのが分かっていただけたでしょうか。

今はまだ、なんとなく分かれば大丈夫です。
大切なのは、変数(へんすう)、条件分岐(じょうけんぶんき)、そして繰(く)り返(かえ)し(ループ)です。
これらが分かれば、ある程度(ていど)のプログラムがかけるようになりますので、がんばっていきましょう。


山田

どうだべ、シューティングゲームはできたべか?

アル

うん! できたよ

りこ

私も!

アル

りこちゃん、どっちが高得点(こうとくてん)とれるか勝負(しょうぶ)だ!

りこ

なによー。負(ま)けないもんね

アル

ひぇ……1000ポイントもいかなかった

りこ

ふっふっふ、見てなさい。100000ポイントとってみせるわ!

山田

まぁまぁ、そうむきにならずに遊ぶべよ。ではわたすはそろそろゲゲゲの鬼太郎を見る時間だから行くべよ

アル

鬼太郎すきなの?

りこ

分かった、きっとねこ娘が好きなのよ。きゃー、ロマンチック!

山田

いや、ねずみ男だべよ。もう、ねずみと聞いただけで、うずうずするべよ……

りこ

……

アル

えっ?

このシリーズの一覧はこちら

  1. 小学生からのプログラミング入門。プログラミングってなぁに?
  2. Scratchの使い方と、ゲーム作りの基礎知識を学ぼう! 小学生からのプログラミング入門
  3. Scratchでじゃんけんゲームを作ろう! 小学生からのプログラミング入門
  4. Scratchでシューティングゲームを作ろう! 小学生からのプログラミング入門
  5. Scratchでピアノ鍵盤を作って音を鳴らそう! 小学生からのプログラミング入門
  6. テキストエディタ(Visual Studio Code)をインストールしてみよう! 小学生からのプログラミング入門
  7. Visual Studio Codeを日本語化してみよう! 小学生からのプログラミング入門
  8. JavaScriptでおみくじを作ろう! 小学生からのプログラミング入門
  9. JavaScriptで今月の残り日数を計算してみよう! 小学生からのプログラミング入門
  10. JavaScriptで画像を表示してみよう! 小学生からのプログラミング入門
  11. JavaScriptで画像を移動してみよう! 小学生からのプログラミング入門
  12. 【JavaScript】キー入力でキャラを動かしてみよう! 小学生からのプログラミング入門
  13. 【JavaScript】ファイルを分けて管理してみよう! 小学生からのプログラミング入門
  14. 【JavaScript】オブジェクトを使ってみよう! 小学生からのプログラミング入門
  15. 【JavaScript】ゲームのメインループを作ってみよう! 小学生からのプログラミング入門
  16. 【JavaScript】キャラを決まった間隔ずつ動かす! 小学生からのプログラミング入門
  17. HTML5とCanvasを使ってみよう! 小学生からのプログラミング入門
  18. 【JavaScript】迷路やRPGで使えるマップを作ってみよう! 小学生からのプログラミング入門
  19. 【JavaScript】マップでキャラを動かせるようにしよう! 小学生からのプログラミング入門
  20. 【JavaScript】クラスの概念をしっかりと理解しよう! 小学生からのプログラミング入門
  21. 【JavaScript】プログラム全体をクラスを使って作ってみよう! 小学生からのプログラミング入門
  22. 【JavaScript】文字を表示するクラスを作ってみよう! 小学生からのプログラミング入門
  23. 【JavaScript】改行と一文字ずつ画面に表示する方法! 小学生からのプログラミング入門
  24. 【JavaScript】ノベルゲーム風にキー入力で文字を切り替える方法! 小学生からのプログラミング入門
  25. JavaScriptでRPGを作ろう!スマホにも対応したゲームの作り方
  26. webpackを使ってゲームエンジンを作ろう!(JSライブラリの作り方)
  27. WindowsにPythonをインストールしてみよう!小学生からのPython入門
  28. MacにPythonをインストールしてみよう!小学生からのPython入門
  29. Pythonでじゃんけんゲームを作ってみよう!小学生からのPython入門
  30. Pythonのtkinterを使って、ウィンドウを表示してみよう!
  31. Pythonのtkinterで、画像つきのおみくじゲームを作ろう!
オリジナルゲーム.com