スクラッチでは処理を止めたい時に使うブロックに「すべてを止める」というものがあります。
しかし、そのブロックには他にふたつの使い道があります。
「このスクリプトを止める」と「スプライトの他のスクリプトを止める」です。
今まで「止める」ブロックを使っても思った通りの制御が出来なかったという方は、この記事を読んで違いを理解して使いこなせるようになってください!
まずは公式ページを見てみよう
こちらから「止める」に関する公式ページの解説を見ることが出来ます。
開いてみると・・・解説が難しいです。
分かったような、分からないような内容です。
ただ、間違いないのは「すべてを止める」のブロックは、名前の通り、全部のスクリプト(コードブロックの処理)を停止させるものという事です。
しかし、この「すべてを止める」ブロックというのは、初めの内は、あまり使う機会が少ないかもしれません。
どちらかと言うと、他ふたつのブロックの使い方をしっかり覚えた方が、面白い作品作りに活かすことが出来ます。
簡単なプロジェクトを作成
まずは、上の画像のようなコードを作成してみて下さい。
鳴らす音は好きなものを選んで大丈夫です。
早速、実行してみると、音楽が鳴っているステージで、ネコが左右に行ったり来たりします。
スペースキーを押すと別の音が鳴った後に、「こんにちは!」と言います。
なんとも意味の分からないプロジェクトですが、これを使って、止めるブロックの解説をしていきます。
その前に、このプロジェクトの一応の完成形をまとめてみます。
- スペースキーが押されたらネコが走るのをやめる
- 同時に音楽も止まる
- 別の音楽が流れ、最後に「こんにちは!」と言う
「すべてを止める」を使ってみる
メッセージ1を送るの下に「すべてを止める」ブロックをくっつけて、実行してみて下さい。
スペースキーを押した瞬間に、本当にすべてが止まってしまいます。
次に、メッセージ1を受け取ったときの一番下にくっつけてみて下さい。
すると、どうでしょう?
スペースキーを押した瞬間には止まらず、こんにちは!と言った後に、すべてが止まります。
これは、実行中の処理(音楽を最後まで鳴らす・こんにちはと言う)をすべて完了させてから止まっているため、このように動作するのです。
「すべて止める」ブロックを使う場合は、配置する場所に気を付けましょう。
「このスクリプトを止める」を使う
次に上の画像のように、メッセージ1を送るの下に「このスクリプトを止める」を設置してみて下さい。
実行して、スペースキーを押すと、ネコが走るのをやめました。
しかし、音楽が鳴り続けてしまいます。
音楽を鳴らすブロックにも「このスクリプトを止める」をくっつけたいところですが、残念ながら、上記のコードには、くっつけることができないようです。
さて、どうしたらいいのでしょう?
「スプライトの他のスクリプトを止める」を使う
先ほど、メッセージ1を送るの下に設置した「このスクリプトを止める」ブロックは削除し、メッセージ1を受け取ったときのすぐ下に「スプライトの他のスクリプトを止める」を配置してみましょう。
すると、ネコが走るのを止め、音楽も止まりました。
そして、「終わるまでOopsの音を鳴らす」→「こんにちは!と2秒言う」が実行されました。
これで、目標としていた動作を作ることが出来ました。
「スプライトの他のスクリプトを止める」のブロックは他のブロックとは違い、自分の下にさらに他のブロックをくっつけることが出来ます。
そのため、ひとつの処理が完了し、次の処理に移す時などに使うことが出来ます。
例えば、ゲーム画面から、ゲームクリアやゲームオーバーの画面や動作に遷移させる時に、非常に便利です。
まとめ
「止める」ブロックは、簡単そうに見えて、少し使い方が厄介なブロックです。
設置する場所や、他のブロックの処理を理解しながら、設定していく必要があります。
しかし、使いこなせるようになれば、とても便利なブロックなのは間違いありません。
ブロックの練習をするときはいきなり難しいものを作ろうとせずに、今回紹介したような簡単なプロジェクトで覚えていくことで、結果的には上達に繋がります。
ぜひ試してみて下さい(*^-^*)
コメント