提供: Japanese Scratch-Wiki
このきじは ひらがなのページがありません。ごめんなさい。
() を送る | |
[メッセージ1 v] を送る
| |
カテゴリ | イベント |
タイプ | スタック |
() を送るブロック(イベントブロック/スタックブロック)は、メッセージをScratchプログラム全体に送るブロックである。このブロックを実行すると、すべてのスプライトにおいて、送信メッセージに対応する() を受け取ったときブロックのスクリプトが実行を開始する。 このブロックは、相手先のスクリプトの実行が終了するのを待たず、次のブロックに処理を渡す(この点が() を送って待つとは異なる)。このようなメッセージの送受信は、スプライトやスクリプト間で何らかのやりとりを行うときに便利である。
使用例
プロジェクトの開始後、ユーザーの操作によることなく実行したいスクリプトがある場合、メッセージを利用するのが一番簡単な方法である。このブロックのよくある使用例は次のとおり:
- スプライト間でやりとりを行う
このスプライトがクリックされたとき // スプライト1に記述 [スプライト2を移動 v] を送る [スプライト2を移動 v] を受け取ったとき // スプライト2に記述 (10) 歩動かす
- 異なるイベントを結びつける
[スペース v] キーが押されたとき <[端 v] に触れた> まで繰り返す (10) 歩動かす end [爆発! v] を送る
- 2つのスクリプト を同じフレームで実行する
[移動 v] を受け取ったとき x座標を (-5) ずつ変える y座標を (10) ずつ変える [スクリプト1 v] を [終了] にする
[移動 v] を受け取ったとき x座標を (-5) ずつ変える y座標を (10) ずつ変える [スクリプト2 v] を [終了] にする
- 複数のスプライトで構成される画面の準備
[すべてのスプライトよ、準備せよ! v] を送る
- Meshにおいて2つのプロジェクトを接続するときも、このブロックを使用する。
- 機能の異なる2種類のMod版Scratchを接続するときも、このブロックを使用する。たとえば、BYOB(mod)からメッセージを送って、LEGO マインドストームのロボットを動かすEnchanting(mod)のイベントトリガーとすることができる。Enchantingにはキーボード/マウス入力を受け付ける機能がないのに対し、 BYOBにはロボットを制御する機能がないが、これらを組み合わ合わせれば、マウス操作に応じて動くロボットを作ることができる。より詳しい情報は、Communicating Between Scratch Modificationsを参照。
再帰
- 詳細は「再帰」を参照
メッセージを送受信するブロックを利用すると、「末尾再帰」と呼ばれる再帰を実現できる。再帰は、ブロック定義や特定のスクリプト(ここでは、メッセージ送受信スクリプト)内で自分自身を呼び出すことで起こる現象であり、フラクタルや無限ループなどを作成するのに使用できる。
関連項目
GitHubでソースを見る: LLK/scratch-flash /src/interpreter/Interpreter.as 469行目