提供:Japanese Scratch-Wiki
このきじは ひらがなでよめません。ごめんなさい。編集者向け:作成する
() を送って待つ | |
(メッセージ1 v) を送って待つ
| |
カテゴリ | イベント |
タイプ | スタック |
() を送って待つブロック(イベントブロック/スタックブロック)は、Scratchプロジェクト全体にメッセージを送るブロックである。このブロックを実行すると、すべてのスプライトにおいて、送信メッセージに対応する「() を受け取ったとき」ブロックのスクリプトが実行を開始する。このブロックの場合は、各スクリプトにメッセージを送ったあと、受け取ったすべてのスクリプトが動作を終えるまで処理を次に渡さず、その地点で待ちつづける。(この点が、メッセージを受け取った側のスクリプトが終わるのを待たずに、処理を次のブロックに渡す() を送ると異なる)。このようなメッセージの送受信は、スプライトやスクリプト間で何らかのやりとりを行うときに便利である。
使用例
プロジェクトの開始後、ユーザーの操作によることなく実行したいスクリプトがある場合、メッセージを利用するのが一番簡単な方法である。このブロックのよくある使用例は次のとおり:
- トーク番組アニメーション
(スプライト1のトーク v) を送る [やあ、ゴボ!] と (2) 秒言う (スプライト2のトーク v) を送って待つ [今日は食べ物について話そう!] と (2) 秒言う
- よくあるアニメーション
(1) 秒でx座標を (-148) に、y座標を (80) に変える (meow v) の音を鳴らす (移動 v) を送って待つ ...
- 開始時にオンラインデータのデコードが終わるまで待つ
@greenFlag が押されたとき::events hat (クラウドデータのデコード v) を送って待つ [前回終了した地点から開始するために、パスワードを入力してください!] と聞いて待つ [i v] を ([ユーザー v]中の(ユーザー名)の場所) にする パスワードを復号化 ::custom もし <(正しいパスワードか) = (1)> なら (ゲーム開始 v) を送る でなければ (ゲーム開始不能 v) を送る end
- Meshプロジェクト
[chat v] を [1] にする (P2 chat v) を送って待つ
再帰
- 詳細は「再帰」を参照
[メッセージ1 v] を受け取ったとき (メッセージ1 v) を送る
メッセージを送受信するブロックを利用すると、「末尾再帰」と呼ばれる再帰を実現できる。再帰は、ブロック定義や特定のスクリプト(ここでは、メッセージ送受信スクリプト)内で自分自身を呼び出すことで起こる現象であり、フラクタルや無限ループなどを作成するのに使用できる。
関連項目
GitHubでソースを見る: LLK/scratch-flash /src/interpreter/Interpreter.as 470行目