Scratch メッセージを送るとメッセージを送って待つの違い
メッセージはよく使いますよね。
主に、スプライト間で連携を取るために使います。
当スクールでは、メッセージ=「スプライト同士の合言葉」と教えています。
このメッセージですが、送るときに、2つのブロックがあります。
「メッセージを送る」と「メッセージを送って待つ」の2つです。
この違いについて、詳しく見ていきます。
メッセージを送るとメッセージを送って待つの違い
結論から言うと、メッセージを送った後の処理が、直列か並列かです。
ネコからGoboにメッセージを送る場合を例にします。
「メッセージを送る」の場合
ネコは、メッセージを送って、すぐに、次の処理に進みます。
「メッセージを送って待つ」の場合
ネコは、メッセージを送って、Goboがメッセージを受け取って、その処理をしてから、次の処理に進みます。
「送る」の場合、ネコはすぐに次の処理に進むので、Goboの返事を待たずに、話し続けていますね。
一方「送って待つ」の場合、ネコはGoboの処理を待つので、Goboの返事を待ってから、話していますね。
図にするとこんな感じです。
「送る」の場合は、メッセージを送って以降のネコの処理と、Goboの処理が並列に(2つ同時並行に)なっていますね。
※専門的な言い方をすると、同期・非同期と言ったりしますが、小学生にもわかりやすいように、直列・並列という言い方をしています。
使い分け
今回のように、会話をしたい場合は、相手の返事を待ってから次の発言をした方ががいいでしょうから、「送って待つ」を使いたいですよね。
一方、ゲームで「ポイントゲット」のようなメッセージを送る場合、ポイントをゲットするたびに動きが止まると不自然なので、「送る」の方が適切なことが多いです。
このように、それぞれの特性を理解した上で、使い分けしましょう。
尚、古いコンピュータや性能の低いコンピュータでは、並列処理ができないことがあります。その場合は「送って待つ」を使いましょう。