スポンサーリンク

【Scratch入門】シューティングゲームをつくろう!プログラミング入門

2018年8月14日

Scratchで作ろうシリーズ。
本やScratchサイトの作品集を見ながら同じよう作品を作ってみます。
今回作るのは、「シューティングゲーム」です。

【Scratch入門】シューティングゲームをつくろう!プログラミング入門

【Scratch入門】シューティングゲームをつくろう!プログラミング入門

シューティングゲームをつくろう

ネコさんを右・左に動かして、上空にいるコウモリさんを打ち落とすゲーム内容です。

「シューティングゲームをつくろう」制作のための参考

Scratchのサイトで「shootinggame」を検索すると何個か出てきます。
右上の青マーク「中を見る」をクリックすると、出来上がったブロックがスプライトごとに表示されますので参考にしてください。
ほかにも主要なScratchプログラミングの本なら、シューティングゲームが載っているはずです。

さぁ、「シューティングゲームをつくろう」でプログラミングをはじめよう。

「シューティングゲームをつくろう」で学べる知識

  • 角度
  • 繰り返し(ループ)
  • 条件文(もし〇〇なら)
  • コスチュームの切り替え
  • 並列処理
  • 変数
  • 演算

まずは工程をかくにん

Scratchサイトで同じ作品を探してみて、あったら緑色の旗をクリックして動かしてみましょう。
まずは中身を見ないで、どういう順序でつくったらいいか考えてみましょう。

  1. 背景を入れます
  2. ネコのスクリプトを作ります
  3. シューティングゲームの「弾たま」をつくります
  4. 弾たまのスクリプトを作ります
  5. コウモリのスプライトを追加します
  6. コウモリのスクリプトを作ります
  7. ゲームオーバーの設定
  8. バグ(不具合)を修正し完成です!

1 背景を入れます

【Scratch入門】シューティングゲームをつくろう!プログラミング入門1

左下の「新しい背景」の一番左の「絵マーク」を選択し、背景ライブラリーの「屋外」から「blue sky」を選択し「OK」を押してください。

2 ネコのスクリプトを作ります

ネコは上空にいるコウモリの動きに合わせて、左右に動けるようにしたいです。
そのため、左ボタンを押したら左に、右ボタンを押したら右に動くようにします。
「10歩動かす」でもいいですが、以前に座標を覚えましたので座標を使ってみましょう。
上下ではなく左右に動かしたいので、使う座標は「x座標」です。
「イベント」から「右向き矢印キーが押されたとき」をスクリプトエリアに移動させます。
その下に「x座標を10ずつ変える」をくっつけます。
同じように「左向き矢印キーが押されたとき」をスクリプトエリアに移動させます。
今度は右とは反対方向に動かしたい訳ですから、「x座標」を反対に動かすには、「-10」変える、とすれば良いですね。
そこで「x座標を-10ずつ変える」をくっつけます。

【Scratch入門】シューティングゲームをつくろう!プログラミング入門2

3 シューティングゲームの「弾たま」をつくります

スプライトのライブラリーを探しても、シューティングゲームの弾はありませんでした。
そのため、ペンマークをクリックして、自分で弾を作図します。
円や直線、バケツの配色などを使えば、それなりの絵になりました。

【Scratch入門】シューティングゲームをつくろう!プログラミング入門

できた弾の作図を右クリックして、名前を「たま」に変更しておきました。

4 弾たまのスクリプトを作ります

シューティングゲームの弾の動きを確認しておきます。
弾はネコさんからコウモリさんをめがけて飛んでいきます。
このとき、弾は垂直に下から上へと飛んでいきます。
画面の上端に弾が当たったら、弾は見えなくなります。

ネコさんが弾を発射させるために、「イベント」から「スペースキーが押されたとき」をスクリプトエリアに移動させます。
「動き」から「90度に向ける」を取り出します。
「90」をクリックすると、「90」は右で、「-90」は左、「0」は上と表示されます。
弾は垂直に上方向へ動かしたいので、「0度に向ける」に修正して「スペースキー」ブロックにくっつけます。
その下に「sprite1へ行く」をつけます。

弾は一回発射されたら天井まで垂直に打ち上げられ、消えていくので、「ずっと」の中に「10歩動かす」「もし端に触れたら」「隠す」「このスクリプトを止める」を入れます。
弾は、スペースキーが押されて初めて出てきますので、「sprite1へ行く」と「ずっと」の間に「表示する」を入れます。

【Scratch入門】シューティングゲームをつくろう!プログラミング入門4

5 コウモリのスプライトを追加します

スプライトのライブラリーから「Bat2」を追加します。

【Scratch入門】シューティングゲームをつくろう!プログラミング入門5

6 コウモリのスクリプトを作ります

コウモリさんは上空をバタバタと飛んでいるようにしたいです。
そこで、「旗がクリックされたとき」をスクリプトエリアに移動させます。
その下に「ずっと」を入れ、その中に「10歩動かす」「次のコスチュームにする」「1秒待つ」「もし端についたら、跳ね返る」を入れます。

【Scratch入門】シューティングゲームをつくろう!プログラミング入門6

並列処理
同時並行で複数の処理を同時に行わせることで、複雑な動作やプログラミングができるようになります。

上記のブロックとは別に、「旗がクリックされたとき」ブロックをスクリプトエリアに移動させます。
コウモリさんはゲームが始まると、弾が当たるたびに、ネコさんの得点が1点加点されます。
10点取られたらゲームオーバーとします。
まず得点の設定をするために、データから変数を作ります。

【Scratch入門】シューティングゲームをつくろう!プログラミング入門7

そこで、「ずっと」の中に「もし弾に触れたなら」「得点を1ずつ変える」を入れ込みます。
弾がコウモリさんに当たったら、よく分かるように「明るさの効果を25ずつ変える」「明るさの効果を0にする」を入れてみました。
またコウモリさんが不規則に飛ぶように「ランダムな場所に行く」も追加しました。

【Scratch入門】シューティングゲームをつくろう!プログラミング入門8

7 ゲームオーバーの設定

得点を1ずつ追加する、のブロックはコウモリさんの動きについていました。
なので、コウモリさんのスクリプトをを追加していきます。
並列処理であとから作った「旗」ブロックと「ずっと」の間に「得点を0にする」を入れ込みます。

もう1個のブロックの、「もし端についたら跳ね返る」の下に、もし得点が10点になったら、という意味で「もし得点=10なら」「「負けました。と2秒言う」、ゲームオーバーとなるので「すべてを止める」をくっつけます。

【Scratch入門】シューティングゲームをつくろう!プログラミング入門9

8 バグ(不具合)を修正し完成です!

旗がクリックしてみましょう。
不具合があったら修正していきます。
今回はコウモリさんのスクリプトで、得点が20点になったらゲームオーバーと、10回繰り返す、と数字に齟齬がありました。
なので、ゲームオーバーを20点で統一するなら「20回繰り返す」とし、10点で統一するなら「得点=10なら」に直さないといけませんね。
もう一度、旗をクリックして正常にプレイしてゲームクリアとなりました。

最初は誰だって初心者です。
やりながら順番に覚えていきましょう。
さぁ、プログラミングをはじめましょう。