メッセージを送りあう練習をしてみましょう。2匹の恐竜が面と向かって吉本新喜劇のレジェンド、桑原和男の懐かしのギャグを飛ばします。
- ごめんください!
- どなたですか?
- 和ちゃんです。
- お入りください。
- ありがとう!
ステップ1
- スクラッチの画面で新しいプロジェクトを作成し、プロジェクト名を「定番ギャグを言いあう恐竜」にします。
- ネコのスプライトを削除し、Dinosaur1とDinosaur2スプライトをプロジェクトに読み込みます。
ステップ2
と、ここまではいつも通りです。次にやりたいのは、右に置いた赤い恐竜の向きを左に変えて、2匹を向かい合わせにすることです。これには手作業で行う方法と、コードブロックを使う2つの方法があります。
手作業で行う方法
[スプライトリスト]にある[向き]を使います。
- [スプライトリスト]で赤いDinosaur2をクリックします。
- スプライトの回転の向きを左右に限定します。そのためには[スプライトリスト]でスプライトを選択した状態で、(向き)をクリックします。
- 回転の角度を示す円盤の下に3つのボタンが表示されるので、真ん中の[左右のみ]をクリックして選択します。
- 円盤の矢印が真左を向くよう、ドラッグします。[向き]の数値を-90に設定する方法もあります。
- 設定が終わったら[スプライトリスト]かステージの何もないところをクリックします。すると回転のパネルが消えます。
コードブロックを使う方法
- [スプライトリスト]で赤いDinosaur2をクリックして、コードエリアを表示します。
- [イベント]-[緑の旗が押されたとき]をドラッグ&ドロップします。
- [動き]-[回転方法を(左右のみ)にする]コードブロックをドラッグ&ドロップします。
- [動き]-[(90)度に向ける]コードブロックをドラッグ&ドロップし、90を-90に変更します。
つづき
手作業で行う方法では、次のようにコードブロックを追加します。
- [スプライトリスト]で赤いDinosaur2をクリックして、コードエリアを表示します。
- [イベント]-[緑の旗が押されたとき]をドラッグ&ドロップします。
- [見た目]-[(こんにちは!)と(2)秒言う]をドラッグ&ドロップし、文字を「ごめんください!」に変更します。
- [イベント]-[(メッセージ1)を送る]をドラッグ&ドロップします。
コードブロックを使う方法では、[見た目]-[(こんにちは!)と(2)秒言う]をドラッグ&ドロップし、文字を「ごめんください!」に変更します。
そして、[イベント]-[(メッセージ1)を送る]をスクリプトの最後にドラッグ&ドロップします。

これで[緑の旗]ボタンがクリックされると、赤い恐竜から緑の恐竜に「メッセージ1」が送られるようになりました。

ステップ3
次は、緑の恐竜で、イベントを受け取ってどうするかのスクリプトを作成します。
- [スプライトリスト]で緑のDinosaur2クリックして、コードエリアを表示します。
- [イベント]-[(メッセージ1)を受け取ったとき]をドラッグ&ドロップします。
- [見た目]-[(こんにちは!)と(2)秒言う]をドラッグ&ドロップし、文字を「どなたですか?」に変更します。
- 今度は緑の恐竜から赤い恐竜にメッセージ2を送りたいので、[イベント]-[(メッセージ1)を送る]をドラッグ&ドロップします。
- (メッセージ1)をクリックし、[新しいメッセージ]を選択します。[新しいメッセージ]パネルが表示されるので、テキストボックスに「メッセージ2」と入力します。2は半角にします。[OK]をクリックします。
このコードブロックは左上は丸いので、一番上に来る(イベントの発生によってスタートする)ブロックです。

これで、緑の恐竜が「メッセージ1」の受信に応答して言葉を言い、「メッセージ2」を返すことができるようになりました。

[緑の旗]ボタンをクリックすると、まず赤い恐竜が「ごめんください!」と言い、その後緑の恐竜が「どなたですか?」と言います。会話は自動的に進みます。
ステップ4
あとはこれを必要な回数だけ繰り返します。メッセージ名と発する言葉を変えればいいだけです。コピーして使いましょう。
- 上で作成した緑の恐竜のスクリプトを[スクリプトリスト]のDinosaur2にドラッグ&ドロップします。
- [スクリプトリスト]のDinosaur2をクリックして、コードエリアを表示します。
- 緑の恐竜からは「メッセージ2」が送信されるので、ここで受信するのは「メッセージ2」です。コピーされた[(メッセージ1)を受け取ったとき]の下向き矢印をクリックします。するとメニューが表示されるので[メッセージ2]をクリックして選択します。
- 次に発言です。ここでは「和ちゃんです。」と言わせたいので、[(こんにちは!)と(2)秒言う]の文字を「和ちゃんです。」に変更します。
- [(メッセージ2)を送る]の下向き矢印をクリックし、[新しいメッセージ]を選択します。今度は「メッセージ3」を作成します。
- プログラムを実行し、動作を確認します。今度は自動的に「和ちゃんです。」まで進みます。
ステップ5
メッセージ3を受け取り、メッセージ4を返す緑の恐竜のスクリプトを作成します。発言は「お入りください。」です。
また、メッセージ4を受け取り、「ありがとう!」と答える赤い恐竜のスクリプトを作成します。これが一連のイベントの最後なので、メッセージ5は返しません。

なお、メッセージ名は「メッセージ1」や「メッセージ2」でなくても構いません。伝えたい内容を入れた名前にすると、何のメッセージかが分かりやすくなります。また実際には、一連の発言をひとりで言うから面白いのであって、ふたりで言い合っても面白くはありません。
ここまでのプログラムはこのリンクからダウンロードできます。
振り返り
今回行った、2匹の恐竜間でのメッセージの送信と受信の関係は下図のように表すことができます。図を見ながらコードブロックを1つずつたどって、確認してみてください。

また、今回の例では2つのスプライト間でのやりとりのように思えるかもしれませんが。ブロードキャスト(一斉配信)は本来、あるスプライトから別の複数のスプライトやステージに送られるものです(ステージから複数のスプライトに送ることもできます)。
ネコのスプライトから「ヤッホー」メッセージをブロードキャストすると、[(ヤッホー)を受け取ったとき]ブロックが設定されているスプライトやステージは「ヤッホー」メッセージを受け取ることができます。設定されていないと、受け取らずスルーします。下図では犬のスプライトは「ヤッホー」メッセージを受け取ることができません。
