こんにちは、ECF Techブログ
担当 Michiです。
今回はシューティングゲームの作り方の第2弾です。
Scratchプログラミングのコツや、他のプログラムにも応用できる考え方をなるべく掲載していくつもりです。よろしくお願いします。
シューティングゲームのサンプルは下の記事からご確認いただけます。Scratchのコードも公開していますので、いち早くご覧になりたい方はご活用ください。本記事で使用する素材画像もダウンロードもできますので、ご確認ください。
また第1回はこちらからご覧いただけます。
対象読者
本記事は次の読者の方の参考になればと考えています。
- Scratchの基本的な操作ができる方
- Scratchでもう少し本格的なプログラムに挑戦したい方
- Scratchの基本は学んだが、自分で考えて作るイメージが難しい方
敵キャラクターをつくる
今回は2体の敵キャラクターを登場させるプログラムをご紹介していきます。
こうもりのプログラム
まずは簡単なこうもりのプログラムから行きましょう。3枚の画像を使います。
また、スプライトの設定は次のようにしておきます。
仕様
こうもりがどんな動作をするのか、あらかじめさせたいことをまとめておきます。これを仕様(しよう)といいます。
仕様を作ることで、目的に向かってプログラムを作っていくことができます。今回作るこうもりの仕様はこんな感じです。
- アニメーションしながら飛ぶ
- 右から左に向かって飛ぶ
- 画面の左端についたら消える。
プログラム
「クローンされたとき」のブロックが2つあります。これらは、クローンが作られると同時に実行されます。
(左側のプログラム)
- こうもりを右端に配置します。上下位置は、毎回登場する場所を変えるためにランダムにしています。
- 最初は見えない状態なので、表示します。
- 左端(xが-230)に到達するまで、少しずつ移動します。
- 左端に着いたら、消えます。
(右側のプログラム)
- 0.2秒ごとにコスチュームを変えます。
クローンのプログラムができたので、次はそのクローンを生み出す部分です。こうもりのプログラムに次の部分を追加します。
0.5秒ごとにランダムな数を得て、4ならこうもりのクローンを作ります。4分の1の確率なので、だいたい2秒に1回のペースでこうもりが生み出されます。
おばけのプログラム
次はおばけのプログラムです。スプライトとコスチュームはこうもりの時と同じように作ります。
スプライトの設定は次のようにしています。
- スプライト:おばけ
- 大きさ:60
- 表示する:隠す(目にななめ線)
まずは変数を作ります。変数のグループから変数を作るを選びます。
変数名は「おばけY」とします。何に使うかはプログラムの段階で説明します。このスプライトのみを選んでおきます。
仕様
おばけの仕様は次のようにしました。
- 左にまっすぐだけじゃなく、左上や左下にも飛ぶ
- 途中で弾を一発放つ
- 画面の端(上端、下端、左端のどれか)についたら消える
クローンのプログラム
それではプログラムを見ていきましょう。「クローンされたとき」のプログラムは次のようになります。
2つのブロックのかたまりがあります。右側はアニメーションさせるためだけのかたまりです。
それに対し左側のプログラムはやや複雑ですので、考え方も含めてみていきたいと思います。
登場位置について
左側プログラムの中に、「端に触れたまで繰り返す」というブロックがあります。おばけは画面の上・左・下のいずれにぶつかっても消えますので、このブロックは便利に使う事ができます。
ですが、画面の右端にぶつかった時にも消えてしまう点に注意が必要です。したがって、おばけの最初の位置は右端に当たってしまわないように少し左寄り(X座標が200の位置)にしています。
変数「おばけY」について
おばけYという変数は、おばけが移動する量(上下方向)を値として持っています。「端に触れたまで繰り返す」の中でXとYが毎回変化します。この部分で使っています。
XとYが毎回同じ量移動することで、おばけの向きが決定します。変数おばけYが2の場合と-1の場合を、例として示します。
※赤い矢印がおばけの進む方向です。
おばけを出すプログラム
クローンのプログラムはできましたので、そのクローンを作り出す部分のプログラムです。おなじおばけスプライトのプログラムとして記述します。
こうもりの時と基本は同じです。乱数の範囲が広く(1~6)になっているので、こうもりよりは出現確率が少なくなっています。単純計算で3秒(0.5秒×6)に1回出る計算です。
おばけの弾のプログラム
次はお化けの出す弾をプログラムしていきたいと思います。お化けの弾はScratchにあらかじめ準備されている素材(Ball)を使います。
スプライトの設定は次のようにします。XとYはなんでもかまいません。
仕様
おばけの弾は次のようなつくりとします。
- お化け1ぴきから1個だけ出す。
- お化けの身体の真ん中から出す
- まっすぐ左にとぶ
プログラム
プログラムを見ていきますが、先に変数を準備しましょう。
- おばけが登場して0.5秒後に弾を出します。
- 弾を出す前に、変数に自分の現在位置を格納しています。これは弾に現在のおばけの位置を伝えるために行なっています。
- おばけのプログラムがセットしたおばけの現在位置を、弾の最初の位置として設定します。
- 左端に到達するまで、一定のスピードで左に移動します。
Scratchではスプライトからスプライトに情報をわたすしくみがない(メッセージのみ)ため、少々強引な方法です。
これでこうもりとおばけのプログラムは一旦完成です。スタートボタンを押して動かしてみましょう。