今回はスクラッチでステージを切り替えるときのプログラミングについて書きたいと思います。
マリオなどのアクションゲームでマップをクリアしたり、特別な動作をすると次のマップに移動します。今回はスクラッチでこの切替を行いたいと思います。
いきなりマップを切り替えるプログラミングをしなさいと言われてもすぐにはできません。
まずは私たちが生活している現実の中でマップが切り替わるときという状況を考えてみましょう。
例えば『家の中に入る』などです。
みなさんが『外から家の中に入る』という動作を行うときにある場所を通ると思います。
このある場所とは『玄関』のことです。
外 ⇒ 玄関 ⇒ 家の中
動作を単純化すると上記のように分解できると思います。
これを今から作成するプログラムに当てはめてみます。
マップ1 ⇒ 玄関 ⇒ マップ2
このように置き換えると『玄関』を目印にしてマップ1からマップ2に切り替わります。
『もし』『玄関を通ったら』『マップ2に替わる』ということです。
画像の『スプライト1に触れたら』の部分が『玄関を通ったら』だと考えて下さい。
では次の処理を考えてみましょう。
『もし~』の中にはマップを変えるスクリプトを入れなければなりません。
スクラッチ1.4のスプライトに関する『見た目』の中には背景を変更するスクリプトはありません。
(スクラッチ2.0にはあります)
ではどうすればいいでしょうか。
『背景』を変更するスクリプトを持っているのはステージです。
ステージに「私は今、玄関を通りました」という合図を送ってあげることでステージに背景を変更してもらいます。
この合図のことをプログラミングでは『フラグ』と言います。VB.NETやJAVAなど多くのプログラミングで使われる手法です。
スクラッチでは『~を送る』というスクリプトになります。
画像のようにスプライトに対してプログラミングをします。
ステージ側でも受け取れるようになります。
この『フラグ』を使用するこでステージ側では『合図を送られたとき』だけ処理を行うことができます。
『フラグ』は『条件分岐』と組み合わせて使用することが大変多いです。
プログラミングをするとき、物事を単純化した際にこの『フラグ』で簡単に処理ができないか考えてみて下さいね。
今回プログラミングしたものはスクラッチサンプルにアップしてあります。
Comments