スクラッチプログラミング

8-3 定番ギャグを言いあう恐竜

メッセージを送りあう練習をしてみましょう。2匹の恐竜が面と向かって吉本新喜劇のレジェンド、桑原和男の懐かしのギャグを飛ばします。

  1. ごめんください!
  2. どなたですか?
  3. 和ちゃんです。
  4. お入りください。
  5. ありがとう!

ステップ1

  1. スクラッチの画面で新しいプロジェクトを作成し、プロジェクト名を「定番ギャグを言いあう恐竜」にします。
  2. ネコのスプライトを削除し、Dinosaur1とDinosaur2スプライトをプロジェクトに読み込みます。

ステップ2

と、ここまではいつも通りです。次にやりたいのは、右に置いた赤い恐竜の向きを左に変えて、2匹を向かい合わせにすることです。これには手作業で行う方法と、コードブロックを使う2つの方法があります。

手作業で行う方法

[スプライトリスト]にある[向き]を使います。

  1. [スプライトリスト]で赤いDinosaur2をクリックします。
  2. スプライトの回転の向きを左右に限定します。そのためには[スプライトリスト]でスプライトを選択した状態で、(向き)をクリックします。
  3. 回転の角度を示す円盤の下に3つのボタンが表示されるので、真ん中の[左右のみ]をクリックして選択します。
  4. 円盤の矢印が真左を向くよう、ドラッグします。[向き]の数値を-90に設定する方法もあります。
  5. 設定が終わったら[スプライトリスト]かステージの何もないところをクリックします。すると回転のパネルが消えます。

コードブロックを使う方法

  1. [スプライトリスト]で赤いDinosaur2をクリックして、コードエリアを表示します。
  2. [イベント]-[緑の旗が押されたとき]をドラッグ&ドロップします。
  3. [動き]-[回転方法を(左右のみ)にする]コードブロックをドラッグ&ドロップします。
  4. [動き]-[(90)度に向ける]コードブロックをドラッグ&ドロップし、90を-90に変更します。

つづき

手作業で行う方法では、次のようにコードブロックを追加します。

  1. [スプライトリスト]で赤いDinosaur2をクリックして、コードエリアを表示します。
  2. [イベント]-[緑の旗が押されたとき]をドラッグ&ドロップします。
  3. [見た目]-[(こんにちは!)と(2)秒言う]をドラッグ&ドロップし、文字を「ごめんください!」に変更します。
  4. [イベント]-[(メッセージ1)を送る]をドラッグ&ドロップします。

コードブロックを使う方法では、[見た目]-[(こんにちは!)と(2)秒言う]をドラッグ&ドロップし、文字を「ごめんください!」に変更します。
そして、[イベント]-[(メッセージ1)を送る]をスクリプトの最後にドラッグ&ドロップします。

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

ステップ3

次は、緑の恐竜で、イベントを受け取ってどうするかのスクリプトを作成します。

  1. [スプライトリスト]で緑のDinosaur2クリックして、コードエリアを表示します。
  2. [イベント]-[(メッセージ1)を受け取ったとき]をドラッグ&ドロップします。
  3. このコードブロックは左上は丸いので、一番上に来る(イベントの発生によってスタートする)ブロックです。

  4. [見た目]-[(こんにちは!)と(2)秒言う]をドラッグ&ドロップし、文字を「どなたですか?」に変更します。
  5. 今度は緑の恐竜から赤い恐竜にメッセージ2を送りたいので、[イベント]-[(メッセージ1)を送る]をドラッグ&ドロップします。
  6. (メッセージ1)をクリックし、[新しいメッセージ]を選択します。[新しいメッセージ]パネルが表示されるので、テキストボックスに「メッセージ2」と入力します。2は半角にします。[OK]をクリックします。
  7. これで、緑の恐竜が「メッセージ1」の受信に応答して言葉を言い、「メッセージ2」を返すことができるようになりました。

    [緑の旗]ボタンをクリックすると、まず赤い恐竜が「ごめんください!」と言い、その後緑の恐竜が「どなたですか?」と言います。会話は自動的に進みます。

ステップ4

あとはこれを必要な回数だけ繰り返します。メッセージ名と発する言葉を変えればいいだけです。コピーして使いましょう。

  1. 上で作成した緑の恐竜のスクリプトを[スクリプトリスト]のDinosaur2にドラッグ&ドロップします。
  2. [スクリプトリスト]のDinosaur2をクリックして、コードエリアを表示します。
  3. 緑の恐竜からは「メッセージ2」が送信されるので、ここで受信するのは「メッセージ2」です。コピーされた[(メッセージ1)を受け取ったとき]の下向き矢印をクリックします。するとメニューが表示されるので[メッセージ2]をクリックして選択します。
  4. 次に発言です。ここでは「和ちゃんです。」と言わせたいので、[(こんにちは!)と(2)秒言う]の文字を「和ちゃんです。」に変更します。
  5. [(メッセージ2)を送る]の下向き矢印をクリックし、[新しいメッセージ]を選択します。今度は「メッセージ3」を作成します。
  6. プログラムを実行し、動作を確認します。今度は自動的に「和ちゃんです。」まで進みます。

ステップ5

メッセージ3を受け取り、メッセージ4を返す緑の恐竜のスクリプトを作成します。発言は「お入りください。」です。
また、メッセージ4を受け取り、「ありがとう!」と答える赤い恐竜のスクリプトを作成します。これが一連のイベントの最後なので、メッセージ5は返しません。

なお、メッセージ名は「メッセージ1」や「メッセージ2」でなくても構いません。伝えたい内容を入れた名前にすると、何のメッセージかが分かりやすくなります。また実際には、一連の発言をひとりで言うから面白いのであって、ふたりで言い合っても面白くはありません。

ここまでのプログラムはこのリンクからダウンロードできます。

振り返り

今回行った、2匹の恐竜間でのメッセージの送信と受信の関係は下図のように表すことができます。図を見ながらコードブロックを1つずつたどって、確認してみてください。

また、今回の例では2つのスプライト間でのやりとりのように思えるかもしれませんが。ブロードキャスト(一斉配信)は本来、あるスプライトから別の複数のスプライトやステージに送られるものです(ステージから複数のスプライトに送ることもできます)。

ネコのスプライトから「ヤッホー」メッセージをブロードキャストすると、[(ヤッホー)を受け取ったとき]ブロックが設定されているスプライトやステージは「ヤッホー」メッセージを受け取ることができます。設定されていないと、受け取らずスルーします。下図では犬のスプライトは「ヤッホー」メッセージを受け取ることができません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です