ある合図でキャラを登場させる
本格的なゲームを作りだすと、次のステージに進むという表現はよく出てくることです。
たとえばめいろゲームを作るとしましょう。
1面だけであればシンプルなプログラムをつくるだけでOKです。
でも、ゴールに着いたら次の面へいけるようにしたいなら、ちょっとプログラムも考えなければなりません。
これ、思ったように動いてくれないんですよね。
「送って待つ」を使う
じゃあ、あるタイミングで敵キャラを出現させるにはどうしたらいいのでしょうか。
ここで使うのが「⚪︎⚪︎を送って待つ」のスクリプトです。
実例を紹介しましょう。
たとえば、めいろゲームの第1ステージ。
ゴールに着くと、次のステージへ進む(=コスチューム番号が変わる)というプログラムです。
で、第2ステージにいった瞬間におばけの敵キャラを出すと。
まずは、めいろのスプライト。
こういう風にスクリプトを組んでみましょう。
「⚪︎⚪︎を送って待つ」を使います。
これをもし「⚪︎⚪︎を送る」にしていたらうまく動きません。
なぜか。
理由はあとで説明するとして、ここは先に進んでいきます。
敵キャラ登場のスクリプト
「⚪︎⚪︎を送って待つ」の信号を受ける敵キャラ側のスクリプトはどうなるでしょうか。
おばけ(敵キャラ)のスクリプトを作っていきます。
ここでのポイントは、「コスチューム#」。
要するに、めいろのコスチューム番号が「3」になるまで繰り返すということなんですね。(今いるめいろのコスチューム番号は2)
そして、めいろのコスチューム番号が「3」になったら、おばけを隠してスクリプトを止めると。
これをやっておかなければ、延々とおばけが出っぱなしになるのでご注意を。
「「︎送る」と︎送って待つ」の違い
この違い、一体何なんでしょうか。
まず「送る」。
これは、点のようなデータとも言いかえていいでしょうか。
たとえばこういう状態だと、点のような「送る」データがひたすらループします。
ためしに、敵キャラの登場で「送る」を試してみると、敵キャラはずっと静止状態。
ここでは「おばけを送る」がずーっと繰り返し送られていて、それをずーっと受けてて動けないんですよ。
一方、「送って待つ」。
こちらは、線のようなデータと言えます。
要するに一回データを送ったら、それっきり。後にどんな処理が起ころうとぜんぜん影響ありません。
一回きりの合図を受けた敵キャラは当然スタート。
スクリプトで作成したプログラムが動きだします。
点と線。
少々ややこしいですが、スクラッチではよく出てくることなんですね。
「うまくいかないなぁ」と思ったときは、まずはこういうところを疑ってみましょう。