ブロックの使い方イベント

スクラッチの「メッセージ▢受け取ったとき」ブロックの使い方を徹底解説!

こちらは、スクラッチの「メッセージ▢受け取ったとき」ブロックの使い方を、詳しく徹底解説しています!

スポンサーリンク

「メッセージ▢受け取ったとき」ブロック

「メッセージ▢受け取ったとき」ブロックは、指定したメッセージを受け取ったときに、下にあるスクリプトを実行します。

ハットブロック

スクラッチのブロックには、役割に応じたブロック形状の決まりがあります。

ブロックの形状については、「Scratchのブロックの種類と役割について」をご確認ください。

「メッセージ▢受け取ったとき」ブロックは、ハットブロック(Hat Block)に該当します。

ハットブロックは、上の部分が丸くなっており、ハットブロックの上にはブロックを置くことができませんが、下の部分には凸がついており、下にブロックをつなげることができます。

この下につなげたブロック群(スクリプト)を実行するためのブロックです。

「メッセージ▢受け取ったとき」ブロックの規定値

「メッセージ▢受け取ったとき」ブロックの規定値は、以下の2つです。

  • 新しいメッセージ
  • メッセージ1

「新しいメッセージ」は、新しいメッセージを作ることができます。

「メッセージ1」は、スクラッチエディターを新規で開いたときのデフォルトのメッセージです。

メッセージは、最低1つ必要で、他のメッセージを作成すれば、「メッセージ1」を消すことができます。

メッセージの消し方については、「スクラッチのメッセージが削除できない!?それ簡単に消せます!」をご確認ください。

「作成したメッセージ」は、こちらのように作られたリストがすべて表示されます。

「メッセージ▢受け取ったとき」ブロックの使い方

それでは、「メッセージ▢受け取ったとき」ブロックの使い方を見ていきましょう。

まず、「メッセージ〇を送る」ブロックの▼を選択して、「新しいメッセージ」をクリックすると、新しいメッセージを作成できます。

「新しいメッセージ」画面が表示されたら、新しいメッセージ名を「移動」にして「OK」をクリックします。

そして、「▢キーが押されたとき」ブロックでスペースキーが押されたときに、「移動」というメッセージを送るプログラムを作ります。

今度は、「Ball」スプライトを選択して、受け取り側のプログラムを作っていきます。

「メッセージ▢受け取ったとき」ブロックで、メッセージ「移動」を受け取ったときに、10歩歩き、端についたら跳ね返るプログラムを作りました。

これで、スペースキーを押すとメッセージ「移動」が送られ、メッセージ「移動」を受け取った「Ball」スプライトが動きます。

今度は、「衝突」というメッセージを新たに追加します。

「Ball」スプライトのメッセージ「移動」を受け取ったときの一番下に「メッセージ〇を送る」を追加しました。

送るメッセージは、先ほど追加した「衝突」です。

「スクラッチキャット」スプライトを選択して、メッセージ「衝突」を受け取ったときに、もしも「Ball」スプライトに触れたら、「〇へ向ける」ブロックで-90度を設定しています。

これで、「Ball」スプライトに触れたときにコケた感じになります。

ただし、そのままにしているとずっとコケた状態のままなので、メッセージ「衝突」を受け取ったときの一番下に90度に戻すよう追加しています。

これで、「Ball」スプライトに触れていないときには、常に90度を向いています。

実際に動かしてみると、「Ball」スプライトに触れたときにコケました。

そして、「Ball」スプライトから離れると元に戻ります。

イベントブロック一覧

「イベント」ブロックには、以下の8個のブロックが用意されています。

  • ハットブロック・・・6つ
  • スタックブロック・・・2つ

ブロックの色は、黄色で統一されています。

スクリプトを実行するトリガー(きっかけ)としてよく利用されます。

イベントブロック 動作
緑の旗が押されたとき
緑の旗がクリックされたときに、下にあるスクリプトを実行する
▢キーが押されたとき
指定したキーが押されたときに、下にあるスクリプトを実行する

このスプライトが押されたとき
このスプライトがクリックされたときに、下にあるスクリプトを実行する
※背景のブロックでは、「ステージが押されたとき」に名称が変わる
背景が▢になったとき
背景が指定した背景になったときに、下にあるスクリプトを実行する
▢>〇のとき
指定した値より指定した項目の値が大きいときに、下にあるスクリプトを実行する
メッセージ▢受け取ったとき
指定したメッセージを受け取ったときに、下にあるスクリプトを実行する
メッセージ〇を送る
指定したメッセージをスクラッチプログラム全体へ送る
メッセージ〇を送って待つ
指定したメッセージをスクラッチプログラム全体へ送り、受け取った側のスクリプトが終わるまで待つ