【Scratchで簡単なゲーム作成編⑨】オープニング画面・ゲームステージを追加してみる
※ 当ページには【広告/PR】を含む場合があります。
2020/10/25
今回はステージ画面やシーンの切り替えなどの際に利用する画面遷移のテクニックをプログラムに実装してみます。
画面遷移を取り入れることで、プレイヤーにゲームをより長く楽しんでもらるようになったり、ストーリー性も盛り込めるようになります。
ちなみに、今回の内容での
オープニング画面を作る
これまでは
🚩
背景の追加
まずは背景に新しいコスチュームを追加してゲームのタイトルを描きます。

コスチュームの名前は
スタート
コードも以下のように、
🚩
ステージ1

スタートボタンのスプライト
スタート画面にスタートボタンを押してからゲームを開始できるようにしてみます。
新しいスプライトとして、
はじまり
スタート

次にゲームをスタートしてから、このスタートボタンを押したときに
ステージ1
このスプライトが押されたとき
スタート?_

また、以降の内容でステージを増やす時に利用するグローバル変数
ステージ
ステージ
他のスプライトの修正
このスタートボタンを押してゲームが開始されるか試す前に、既に
🚩が押されたとき
ステージ1を受け取ったとき

またスタート画面を追加したので、それまでは必要でなかった初期化処理を追加しないといけないスプライトもあるので、以下のように最初の画面では隠せるようにしておきます。

これでスタート画面からゲームが開始できるようになりました。

ステージ画面を変える
では次にゲームのステージを変える機能を追加します。
これも先程のスタート画面を実装したときと同じような理屈で、ステージ1でのゲームクリア条件だったところを、次のステージ2へ遷移するようにすることで可能となります。
なおゲームクリア機能の実装に関しては
とりあえず最初は簡単なところで、ステージ2になったら背景だけ変えるようにやってみます。
スコア・スプライト
このゲームでは
スコア
ここでは前回まではゲームのクリア条件であったところを、
ステージ2

今回はプログラム単純化のため変数
スコア
またこのときにステージも2に変えておきます。
スコアボード・スプライト
スコアボード
以下のように、
ステージ2を受け取ったとき

今回は行いませんが、ステージ2で登場するアイテムなどを一新させるにはもうちょっと工夫が必要になります。
おきばしょ・スプライト
ステージ2が始まった直後は、食べ物置き場に置いていたエサは一旦全て消去しますので、
おきばしょ
ステージ2を受け取ったとき

これでステージが切り替わっても、食べ物のコスチュームが次の画面に持ち越されることはありません。
背景
アイテムの選択画面から戻ってくるときに
プレイモード
そこでグローバル変数
ステージ

また
🚩が押されたとき
ステージ1
ステージ2
他のスプライト
背景を色々と切り替わる種類が増えたことで、
背景の名前
背景の番号

ただし、ステージ数が多くなったり、画面の切り替えが複雑になってきたら、グローバル変数などでステージが今どこにセットされているのかを記録して使う工夫が必要になるかも知れません。
まとめ
今回は画面遷移の実装手順のポイントに関してまとめてみました。
ステージを遷移させるにはメッセージイベントを上手く利用して、走っているスクリプトを止めたり・開始したりしなければならないため、プログラムが大きければそれだけ大変になってきます。
また、画面ごとの変数や画像などのリソースの管理も複雑になってきますので、慣れないうちは紙のメモ帳やノードブックなどに管理帳として書き留めながらゲーム開発をしてくと良いと思います。