スクラッチ(Scratch)のメッセージは、ほかのスプライトやステージを動かすための合図を送ることができる便利な機能です。
メッセージを使うことで、より複雑なプログラムを作れて 表現できることがグッと広がりますよ。
この記事では、メッセージの使い方のほかに、かんたんなアニメーションの作り方を紹介します。
スクラッチがはじめての人は、下の記事からごらんください。
メッセージとは他のスプライトやステージを動かすための合図
メッセージは、ほかのスプライトやステージを動かすための合図です。
メッセージを送ることをきっかけに、メッセージを受け取った複数のスプライトやステージに処理をさせることができます。
いまいちピンとこないかもしれませんね。
体育の授業を思いうかべてみてください。
先生が「前へならえ!」と言ったら、先頭の人はこしに手をあてて、後ろの人は前の人のかたの高さまで うでをあげます。
この場合、先生の「前へならえ!」はメッセージにあたり、生徒たちはメッセージを受け取ったことを合図にそれぞれの立場に合った行動をとります。
ほかにも、
- だるまさんがころんだ:オニはふりかえり、ほかの子は止まる
- 映画さつえいの「アクション!」:役者は演技をはじめ、カメラマンは役者をとる
など、人間が何かを合図に行動を起こす場面はたくさんありますね。
スクラッチでも、ほかのスプライトが処理をするための合図を出せるということです。
メッセージのブロックは3種類
メッセージのブロックは3種類。イベントのカテゴリにあります。
- メッセージを受け取ったとき
- メッセージを送る
- メッセージを送って待つ
「メッセージを送る」または「メッセージを送って待つ」と、「メッセージを受け取ったとき」ははセットで使います。
「メッセージを受け取ったとき」ブロック
メッセージを受け取る側のブロックです。
対応するメッセージを受け取ると、「メッセージを受け取ったとき」の下に組み込まれた命令が実行されます。
「メッセージを送る」ブロック
メッセージをプログラム全体に送るブロックです。
また、受け取った側の処理が終了するのを待たずに次の命令を実行します。
- 「メッセージ1▼を送る」をプログラムを作る場所へドラッグアンドドロップ
- 「▼」をクリックしメッセージを選ぶ
新たに作る場合は「新しいメッセージ」を選ぶ - メッセージの名前を入力して「OK」
あとで見てもわかりやすい名前をつけましょう。
「メッセージを送って待つ」ブロック
メッセージを送信するところまでは「メッセージを送る」と同じです。
「メッセージを送る」とちがうのは、受け取った側の処理がすべて終わるまで 送った側の次の命令が実行されないところです。
「メッセージを送る」と「メッセージを送って待つ」のちがい
「メッセージを送る」と「メッセージを送って待つ」のちがいをプログラムを作って確認してみてみましょう。
下の画像のようにプログラムを作って、実行(ネコの「こんにちは!と2秒言う」をクリック)します。
それぞれの結果は、下の画像のようになります。
「メッセージを送る」の実行結果は、イヌの「こんにちは!」を待たずネコの「いい天気ですね。」が同時に表示されています。
それに対して「メッセージを送って待つ」の実行結果は、イヌの「こんにちは!」が終わった後にネコの「いい天気ですね。」が表示されています。
- メッセージを送る :受け取った側の処理が終わるのを待たない
- メッセージを送って待つ:受け取った側の処理が終わるのを待つ
メッセージは複数のスプライトに送れる
メッセージは、複数のスプライトやステージで受け取ることができます。
つまり、複数のスプライトに同じタイミングでそれぞれ別の動きをさせることができます。
新しくコウモリを追加しました。
ネコの「メッセージを送る」または「メッセージを送る」をクリックすると、メッセージを受け取ったコウモリとイヌがそれぞれ「メッセージを受け取ったとき」の下に組みこまれたプログラムを実行しました。
よかったら、実際に動かして ちがいを確認してみてください。
- 1キー:メッセージを送る
- 2キー:メッセージを送って待つ
メッセージを使ってアニメーションを作ってみよう
メッセージを使ってアニメーションを作ってみました。
Pico(人)をクリックすると、ロケットが発射してネコがおくから手前に飛んでくるアニメーションです。
プログラム
Pico のプログラム
rocketship のプログラム
cat flying のプログラム
緑のハタをクリックをクリックすると最初の状態にもどります。
座標を変える値・大きさを変える値やくり返しの回数は、いい感じになるよう試しながら調整してみてくださいね。
まとめ
メッセージは、ほかのスプライトやステージを動かすための合図です。
メッセージを送ることをきっかけに、メッセージを受け取った複数のスプライトやステージを動かすことができます。
メッセージはアニメーションやゲームを作る時にとても便利です。
ぜひ使ってみてくださいね!















