メッセージを送るには、「~を送る」と「~を送って待つ」の2種類があります。
2つ用意されているということは、やっぱり使い分ける意味があるんですね。
実際にプログラムを動かしながら、この2つの違いについて、見ていきましょう。
今回は、3つのイラストを用意しました。
まず、恐竜がコップを取りに行きます。
取られたコップは、グルグル回って消え、次にミルクのイラストが表示される。
ここで表現したいのが、コップがグルグルと回り終わってから、ミルクを出現させたいんですね。
~を送る
恐竜のプログラムはこのように作ってみました。
右に進んでいって、もしコップに触れたら、「コップ」「ミルク」の順にメッセージを送る。
コップを回転させる動き。
ミルクを表示させるプログラム。
動かしてみると・・・
コップとミルクが同時に出現しました。
しかも、恐竜が触れている間、ずっとコップが回転しています。
~を送って待つ
もともと作りたかった動きは、コップが回転し終わってから、ミルクが出現、でしたね。
そこで登場するのが、「~を送って待つ」。
さっそく使ってみましょう。
「コップを送って待つ」に入れかえてみました。
実行してみましょう。
なんと、コップが回転している間、恐竜は動かせません。
そして、コップが消えてから、ミルクが出現しました。
まるでコップが動き終わるのを、待っているようですね。
「~を送って待つ」は、その名の通り、メッセージを受け取った相手のプログラムが終わるまで待つ。
①恐竜:メッセージ「コップ」を送って待つ
②コップ:回転して消える
③恐竜:コップのプログラムが終わったので、「ミルク」を送る
同時に実行させたくない場合、順を追って実行したいときには、かなり重宝するコードじゃないでしょうか。