※ 当ページには【広告/PR】を含む場合があります。
2022/09/26
Scratchから始めるシューティングゲームの作り方⑧〜ステージボスを追加する
これまで連載記事として紹介してきた「Scratchで簡単なシューティングゲーム作成」の話もいよいよ大詰めです。今回の内容では、まだ実装していなかった「オープニング画面」、「エンディング画面」のシューティングゲームへの追加と、複数のステージを追加する第一歩として、「2番目の攻略ステージ」を一気に増強するテクニックを紹介します。なお前回までに仕上げたScratchプロジェクトを元に、ブロックコードを修正しながら説明していきます。参考プロジェクト|シューティングゲーム⑧
【Pschool厳選】Scratchをしっかり学ぶためのオススメ書籍まとめ
オープニング画面を作る
まずはオープニング画面の追加方法から見ていきましょう。以前、別のScratchアプリを作ったときの内容で、同じようにオープニング画面を追加したときがありました。【Scratchで簡単なゲーム作成編⑨】オープニング画面・ゲームステージを追加してみるステージ画面やシーンの切り替えなどの際に利用する、画面遷移のテクニックを実装します。
復習になりますが、この方法で今回のScratchシューティングゲームにもオープニング画面を追加してみます。まずは背景
にオープニング画面用の新しい背景を追加してゲームのタイトルを描きます。これまでのシューティングゲームでは、🚩
を押した直後から即時ゲームをスタートしていましたが、オープニング画面を導入することで、スタートボタンを押さないと最初のステージが開始されないようにすることがえできます。まず背景
のブロックコードを編集します。先にゲームスタートをするためのイベント・「ステージ1」
を追加しておきます。背景はゲームスタート時のみに表示され、ステージが開始されると消える必要があります。Scratchの背景は基本的に非表示の選択が出来ないので、非表示にする代わりに「何もない背景画像に切り替える」か、「幽霊の効果を100(透明)にする」かのどちらかで対応出来ます。では新しくクリックするボタンを作るために、[スタート]
という名前でスプライトを作成しましょう。この[スタート]
のスプライトのコードブロックは以下のようにします。🏳
が押されてプログラムがスタートした際の、位置の初期化とボタンの表示が行われます。またこの[スタート]
がクリックされたら、ステージ1
イベントが押されてゲームが開始されます。このステージ1
イベントに合わせて、他の全てのスプライトのコードも初期化処理を修正する必要があります。例えば、[プレーヤー]
のスプライトは、🏳
を押すとすぐさまプログラムが開始していたコードが、🏳
を押してパラメータだけ初期化しておき、ステージ1
イベントを受け取ったら表示する(ステージの開始)というように分離するようにします。ここでは、他のスプライトの初期化の具体的な分離に関しては省略します。方針として、変数の初期値などはプログラム開始時に与えておいたほうがロード時間を短縮する意味で好ましく、実際のスプライトやクローンの表示や処理はイベントブロックへ置くようにしましょう。オープニング画面が問題なく追加できれば、以下のように、「スタート」
ボタンをクリックすることでスムーズに最初のステージ画面が開始されていると思います。
【Pschool厳選】Scratchをしっかり学ぶためのオススメ書籍まとめ
エンディング画面&ゲームオーバー画面を作る
次に、エンディング画面もしくはゲームオーバー画面を追加していきましょう。これも、以前のブログ記事で同様の内容を説明していました。【Scratchで簡単なゲーム作成編⑦】ゲーム終了画面を実装するScratchゲームのゲームオーバーやエンディングなど、終わらせ方を考えていきます。
こちらも同じように、ゲーム終了画面を盛り込んでみようと思います。まずは新しいイベントとして、「ゲームオーバー」と「エンディング」の2つを追加しておきます。次に、[背景]
に、ゲームオーバー時とエンディング時の画面用に2つ適当な画像を作成しておきます。背景のブロックコードには追加で以下のようなブロックを追加し、イベントで背景が切り替わるようにしておきます。ゲームオーバーについては、[ライフ]
のスプライトでイベントの処理で行っていました。これまで[ライフ]
のコードではプレーヤーのライフが残数ゼロになった時に、プログラムを停止する処理をしていましたが、これをゲームオーバー
イベントで置き換えます。これで、ライフが尽きたときに、ゲームオーバー画面へ移った後で、プログラムが終了するようになります。エンディング画面も同じ要領で、クリア条件を担当している[アイテム]
のスプライトをコードの中で、[すべてを止める]
で仮決めしていた、エンディング画面への移行パートを、エンディング
イベントへ書き換えます。問題なければ、ライフがなくなった時と、ボスを撃破した時に、それぞれ終了に応じた画面へ切り替えが行われます。
【Pschool厳選】Scratchをしっかり学ぶためのオススメ書籍まとめ
新しく攻略ステージを追加する
これまで1ステージだけでしたが、新たに別のステージを追加する方法を考えてみます。なお以前、同じような試みとして別のScratchゲームでも複数のステージ化を題材に記事に取り上げていました。【Scratchで簡単なゲーム作成編⑨】オープニング画面・ゲームステージを追加してみるステージ画面やシーンの切り替えなどの際に利用する、画面遷移のテクニックを実装します。
今回もそちらで説明した内容と考え方はほとんど同じで、各ステージの切り替えには、「ステージごとにイベントを呼び出して切り替える方法」が、切り替えタイミングの取りやすさから言って、もっとも理解しやすいやり方になります。まずなんと言っても、追加する新しい攻略ステージが必要になります。これまで説明してきた内容の総まとめのような話になりますが、2番目の攻略をダイジェストで作ってみます。新しいステージを作成する
作り方の詳細はこれまで説明してきた各ブロク記事を良く読んでいただくとして、新しいステージを追加するポイントだけをまとめてみます。長い背景の分割方法
新しい攻略ステージ用に、Scratchゲームの横に長くスクロールする背景を用意します。Scratchから始めるシューティングゲームの作り方⑤〜長い背景の作り方と敵の出現パターンを設定するScratchのシューティングゲームで、横に大きい画像からステージ背景と敵の出現ポイントを作ります。
新しいステージを追加するやり方としては、ステージ1として使った[背景]
のスプライトをそのまま複製して、[背景2]
としましょう。この[背景2]
のスプライトのコスチューム画像を新しいステージ用の画像で置き換えます。次いでステージ2への切り替えフラグ用に、ステージ2
イベントを新しく作成しましょう。このステージ2
イベントは、[背景2]
のスプライトのコードブロックの中で、[ステージ2]を受け取ったとき
のイベントブロックに置き換えて使うと、2番目のステージのシーンになります。また、現在のステージの番号を記録しておくグローバル変数・「ステージ」
を新規作成しておきましょう。このグローバル変数に現在のステージ数を残しておくことで、条件分岐処理が必要になった場合に便利です。基本的にステージを追加する場合、[背景]
のスプライトを複製して、ステージ切り替えイベントを新たに作成して、それに置き換えることでかなり楽にステージが追加できると思います。ステージの敵を追加する
ステージの背景を新しくしたので、そこに登場する敵も新しくしておきましょう。スクロールするが出来たら、出現ポイントを定義しているリストに、そのステージに出現させる敵を登録します。なお、Scratchゲームで敵のバリエーションの増やし方に関しては以下の記事で取り上げていました。Scratchから始めるシューティングゲームの作り方③〜敵の弾・敵の動きを改良するScratchのシューティングゲームで敵の動きをより深く作り込んでいきます。
このScratchゲームでは、敵のパターンを固定の番号で登録することで、それぞれのシーンの出現ポイントで呼び出して利用していました。ステージ1で既に敵の番号を「0〜6」(ボスは6)まで利用していましたので、ステージ2で利用する敵は「7〜」から番号を登録するようにします。ここでは、敵の追加の詳細は省略しますが、ご自分の手で[敵]
や[敵2]
のスプライトに新しい敵パターンの番号とその動きを定義してみてください。新しく動きを考えてみたり、新しいコスチュームを追加してみるのも面白いでしょう。ステージ2用に新しい敵を登録したら、[背景2]
のスプライトの出現ポイントリストに、前の回で説明した手順で、これらの敵を登録しましょう。Scratchから始めるシューティングゲームの作り方⑥〜ステージに敵を配置する・高度な当たり判定を設定するScratchシューティングゲームで敵の出現ポイントと当たり判定をさらに高度化します。
例えば、フィールドの敵を7〜10
まで増やしたリストは以下のようになります。ドロップアイテムの種類も増やしても面白いのですが、アイテムの増やし方も敵を追加する方法と全く同じですので、ここではステージ1と同じアイテムを再利用します。ステージボスを追加する
ステージ終わりのボスを作成する方法は次の記事で解説していました。Scratchから始めるシューティングゲームの作り方⑧〜ステージボスを追加するScratchでシューティングゲーム中のステージボスを作る手順を詳しく解説していきます。
ステージ2の最後に登場させるボスは、ステージ1のボス・[ボス1]
を複製して、[ボス2]
として新しくスプライトを作成します。複製した[ボス2]
は、コスチュームを変えて見た目を変えたり、ライフを増やしたり、動きのパターンを修正したりします。ボスを追加する上で重要になるのは、ステージクリアアイテム
も追加する必要があることです。例えば、ステージ2のクリアアイテムを番号「6」
で、[アイテム]
のスプライトに追加登録してみます。[アイテム]
のブロックコードで、番号「6」のアイテムを追加し、これをクリアアイテム用に分岐した箇所にさらに分岐を加えて、ステージ1のクリアアイテム「5」を取得したときにはステージ2
イベントを発生させ、クリアアイテム「6」を取得した場合にはエンディング
イベントにしています。これで[ボス2]
スプライトにこのクリアアイテム「6」をセットしましょう。また[背景2]
スプライトの出現ポイントリストにも、ボス2「11」
とクリアアイテム「6」
の情報を更新して完了です。新しいステージを追加するためのスプライトコードの微調整
最後にステージ2の追加したことによる細かい仕上げの作業を行います。先程まででステージ2
のスプライトを追加したことにより、これまでのステージ1
の攻略後に切り換わるときに、他のスプライトの処理が影響を受けたり、受けなかったりします。ここらへんはご自身のプログラミングによって事情は様々ですので、全てのスプライトや背景のブロックコードを点検し、問題があれば全て調整していきます。細かい手直しですので、全ては取り上げませんが、ステージを増やしたことで、例えば今回の[プレーヤー]
のスプライトだとどうなるかというと、これまでは攻略ステージを作っていなかったので、スプライトの初期化は🏳が押されたとき
ブロックに書いていたものを、それぞれのステージが開始されるイベントのブロックごとにパラメータの初期化を行うようにしています。
【Pschool厳選】Scratchをしっかり学ぶためのオススメ書籍まとめ
まとめ
以上、今回のScratchシューティングゲームの改造内容をひとまとめにしたものは以下のようになります。※たまに背景画像が表示されないなど、Scratchアプリ特有のゲーム中の動作が不安定なことがあります。そんなときはお手数ですが、一旦プログラムをストップして、もう一度スタートしてみてください。さて、Scratchシューティングゲームの大まかな作成手順は、大体この記事をもってほぼ終了です。次回はこれまでで解説の都合上、細かく取り上げきれなかったちょっとした改良点を紹介する内容でこの連載記事を一旦締めたいと思います。よろしければ最後までお付き合いください。