提供: Japanese Scratch-Wiki
緑の旗がクリックされたとき | |
カテゴリ | イベント |
タイプ | ハットブロック |
追加 | Scratch 1.0 |
緑の旗がクリックされたときブロックは、イベントカテゴリのハットブロックである。緑の旗がクリックされた時に、このブロックの下に組まれたブロックが実行される。これらのスクリプトは他のスクリプトをアクティブにし、全体のプログラムを有効にすることができる。
このブロックを使わない場合、プロジェクトを実行することができる方法は、キーの押下またはスプライト(ステージ)のクリックを感知する以外の方法は無い。また、このブロックはScratchで最も多く使われているブロックである。
このブロックを使わずプロジェクトを作成することは可能だが、推奨されない。旗はプロジェクトの開始を表し、プロジェクトが開始されたときにこのブロックが感知されるからだ。
使用例
通常、プロジェクトを開始するといろいろな動作が始まるが、これはそれらの動作がこのブロックの下に記述されているからである。このブロックのよくある使用例を次にあげる。
@ がクリックされたとき (すべて v)番目を[リスト v]から削除する
- 変数をリセット
@ がクリックされたとき [変数 v]を(0)にする
@ がクリックされたとき 隠す コスチュームを [コスチューム1 v] にする
- すべてのペンを消す
@ がクリックされたとき 消す
- 音楽を再生する
@ がクリックされたとき ずっと 終わるまで [曲 v] の音を鳴らす end
- クローンを作成する
@ がクリックされたとき [自分自身 v] のクローンを作る
上記のようなブロックを実行した後も、スクリプトは正常に継続される。
@ がクリックされたとき 画像効果をなくす x座標を (0) 、y座標を (0) にする [開始! v]を送る ずっと もし <(メーター) < [0]> なら [あなたの負け v]を送る end end
エラー
たくさんのブロックを同時に実行させるとプロジェクトの実行した時に見つかりにくいエラーが起こる可能性がある。
だがプロジェクトを実行させた時にメッセージ(Broadcast)を使って実行させると容易に直る。
(あまりプロジェクトの開始時に同時にブロックを実行させるのも良くない)
@ がクリックされたとき [message1 v]を送る
別のブロックで表現
[timer v] > (-1) のとき say [ハローワールド!]
現在のところ、「緑の旗がクリックされたとき」ブロックの代用として機能するのは、上記のスクリプトだけである。
Scratchは、プロジェクトを最初に開いたときすべてのハットブロックを休眠状態にしており、緑の旗がクリックされたタイミングで、タイマーが0にセットされて、「緑の旗がクリックされたとき」ブロックが動作を始める
上記のスクリプトには1つだけ問題がある。プロジェクトの「中を見る」をクリックしたときに、自動的に動作を開始してしまうという点である。
[Scratch-スタートが押された v] を受け取ったとき [ハローワールド!] と言う
Scratch2.0より前のバージョンでは、上記のブロックで緑の旗がクリックされたときを代用することができた。
ストップがクリックされたとき
多くのユーザーから「ストップがクリックされたとき」というイベントブロックを導入してほしいとの声が上がっているが、これまでこの要望は、「ストップボタンは、すべてのプロジェクトを停止させるためのものであり、新たなスクリプトのトリガーとして機能させるつもりはない」という理由で毎回却下されている。
上記のように「ストップがクリックされたとき」に何らかのスクリプトを実行させたいときは、次のように記述できる。
定義 チェック ずっと タイマーをリセット // 0.1秒ごとにタイマーをリセットして、タイマー値を0.2より低く保つ (0.1)秒待つ end @ がクリックされたとき チェック [タイマー v] > (0.2) のとき // ストップボタンがクリックされたとき、タイマーがリセットされなくなるため、0.2以上になる ... // ストップボタンがクリックされたとき実行するスクリプトを記述する チェック