スクラッチでゲームを作ってみようと思ったときに、困るのが画面遷移です。
例えば、タイトル画面があって「スタート」ボタンを押すと、画面が切り替わってゲームが始まるようにしたい。
次のステージに切り替えたいなどなど。
しかし、スクラッチにはそんな機能が見つかりません。
どうしましょう。
スクラッチで画面遷移をするためにはどうしたらいいのか考えていきましょう。
画面遷移って何?
画面遷移というのは、画面に表示しているスプライトを一掃して、他のスプライトに入れ替えることです。
実際にゲームではタイトル画面から「スタート」ボタンを押すとゲームのステージにきり変わる。
ステージ1からステージ2に切り替わる。
のような場面です。
このような画面を切り替えを画面遷移といいます。
ゲームを作ると必ず作りたくなりますね。
スクラッチに画面遷移機能は無い
実は必ずほしくなる画面遷移機能ですが、スクラッチではどうしたらいいのでしょうか?
コードの中を探しても、それっぽい機能は見つかりません。
スクラッチには画面遷移機能はありません。
でも、何とかしたい。
どうしたらいいでしょうか。
ちょっと工夫をしてみましょう。
画面遷移を再現する
少し手間はかかりますが方法はあります。
ゲームのタイトル画面を想定してみましょう。
スタートボタンか設定ボタンを押したら画面を変更してみます。
利用する機能は「イベント」の「〇〇を送る」「〇〇を受け取ったとき」です。
「START」ボタンのスプライトのプログラムです。
「このスプライトが押されたとき」に「startのメッセージを送る」プログラムを作ります。
あとは、すべてのスプライトにstartを受け取ったときに「表示する」のか「隠す」を作ります。
STARTボタンを押したら、ゲームが始まるのでSTARTボタンは表示する必要ありません。
「startを受け取ったとき」はSTARTのスプライトは「隠す」処理を作ります。
逆に、ゲーム画面から「タイトルに戻る」などのボタンが押されたときはSTARTボタンを表示する必要があります。
それが「メニューを受け取ったとき」のプログラムです。
このような要領ですべてのスプライトに対してプログラムを作っていきます。
結構大変
画面遷移を作る方法は説明した通りですが、かなり手間がかかることに気づいたでしょうか。
スプライトの数が増えるごとにプログラムが必要です。
スクラッチでは画面をきりかえるような凝ったことを想定していないのでしょうね。
コメント