提供: Japanese Scratch-Wiki
(ひらがなヘッダの追加 (Bot)) |
(@greenFlag に関する変更 (bot)) |
||
19行目: | 19行目: | ||
*[[リスト]]の要素をすべて削除する | *[[リスト]]の要素をすべて削除する | ||
− | <scratchblocks>@ がクリックされたとき | + | <scratchblocks>@greenFlag がクリックされたとき |
(すべて v)番目を[リスト v]から削除する</scratchblocks> | (すべて v)番目を[リスト v]から削除する</scratchblocks> | ||
*[[変数]]をリセット | *[[変数]]をリセット | ||
− | <scratchblocks>@ がクリックされたとき | + | <scratchblocks>@greenFlag がクリックされたとき |
[変数 v]を(0)にする</scratchblocks> | [変数 v]を(0)にする</scratchblocks> | ||
*[[スプライト]]の表示/非表示を切り替えたり、[[コスチューム]]を変えたりしてシーンの設定を行う | *[[スプライト]]の表示/非表示を切り替えたり、[[コスチューム]]を変えたりしてシーンの設定を行う | ||
− | <scratchblocks>@ がクリックされたとき | + | <scratchblocks>@greenFlag がクリックされたとき |
隠す | 隠す | ||
コスチュームを [コスチューム1 v] にする</scratchblocks> | コスチュームを [コスチューム1 v] にする</scratchblocks> | ||
*すべてのペンを消す | *すべてのペンを消す | ||
− | <scratchblocks>@ がクリックされたとき | + | <scratchblocks>@greenFlag がクリックされたとき |
消す</scratchblocks> | 消す</scratchblocks> | ||
*音楽を再生する | *音楽を再生する | ||
− | <scratchblocks>@ がクリックされたとき | + | <scratchblocks>@greenFlag がクリックされたとき |
ずっと | ずっと | ||
終わるまで [曲 v] の音を鳴らす | 終わるまで [曲 v] の音を鳴らす | ||
42行目: | 42行目: | ||
*[[クローン]]を作成する | *[[クローン]]を作成する | ||
− | <scratchblocks>@ がクリックされたとき | + | <scratchblocks>@greenFlag がクリックされたとき |
[自分自身 v] のクローンを作る</scratchblocks> | [自分自身 v] のクローンを作る</scratchblocks> | ||
上記のようなブロックを実行した後も、スクリプトは正常に継続される。 | 上記のようなブロックを実行した後も、スクリプトは正常に継続される。 | ||
− | <scratchblocks>@ がクリックされたとき | + | <scratchblocks>@greenFlag がクリックされたとき |
画像効果をなくす | 画像効果をなくす | ||
x座標を (0) 、y座標を (0) にする | x座標を (0) 、y座標を (0) にする | ||
61行目: | 61行目: | ||
<scratchblocks> | <scratchblocks> | ||
− | @ がクリックされたとき | + | @greenFlag がクリックされたとき |
[message1 v]を送る | [message1 v]を送る | ||
</scratchblocks> | </scratchblocks> | ||
92行目: | 92行目: | ||
end | end | ||
− | @ がクリックされたとき | + | @greenFlag がクリックされたとき |
チェック | チェック | ||
2018年8月15日 (水) 11:17時点における版
緑の旗がクリックされたとき | |
@greenFlag がクリックされたとき
| |
カテゴリ | イベント |
タイプ | ハット |
追加 | Scratch 1.0 |
緑の旗がクリックされたときブロック(イベントブロック/ハットブロック)は、緑の旗がクリックされたときに、下に組まれたスクリプトを実行するブロックである。このスクリプトから他のスクリプトを開始することで、プログラム全体が実行されていく。
このブロックを使わないでプロジェクトを実行しようとすると、キーが押されたこと、または、スプライト(ステージ)がクリックされたことを検知する方法が考えられるが、この場合、最初のスクリプトから引き起こされたスクリプトの動作がすべて終わった段階で、プロジェクトが終了する。 このブロックを使わないプロジェクトを作成することは可能だが、推奨されない。緑の旗はプロジェクトの開始を表し、このブロックによってプロジェクトの開始ポイントが判断できるからである。
なお、このブロックはScratchで最も多く使われているブロックである。
使用例
通常、プロジェクトを開始するといろいろな動作が始まるが、これはそれらの動作がこのブロックの下に記述されているからである。このブロックのよくある使用例を次にあげる。
- プロジェクトを開始
- リストの要素をすべて削除する
@greenFlag がクリックされたとき (すべて v)番目を[リスト v]から削除する
- 変数をリセット
@greenFlag がクリックされたとき [変数 v]を(0)にする
@greenFlag がクリックされたとき 隠す コスチュームを [コスチューム1 v] にする
- すべてのペンを消す
@greenFlag がクリックされたとき 消す
- 音楽を再生する
@greenFlag がクリックされたとき ずっと 終わるまで [曲 v] の音を鳴らす end
- クローンを作成する
@greenFlag がクリックされたとき [自分自身 v] のクローンを作る
上記のようなブロックを実行した後も、スクリプトは正常に継続される。
@greenFlag がクリックされたとき 画像効果をなくす x座標を (0) 、y座標を (0) にする [開始! v]を送る ずっと もし <(メーター) < [0]> なら [あなたの負け v]を送る end end
エラー
1つのプロジェクト内でこのブロックを複数使用していると、プロジェクト実行時に原因が特定しづらいエラーを引き起こすことがある(たとえば、スタートボタンを2回押すたびにエラーが発生する、動作のタイミングがずれるなどの現象が起こる)。 このエラーに対するもっともシンプルな回避策は、「緑の旗がブロックされたとき」は1つだけ使用して、その中に() を送るブロックを入れて、プロジェクト開始時に実行したいその他のスクリプトは、すべてそのメッセージで実行されるようにするというものだ。その他に、緑の旗を何回かクリックする、ターボモードで実行するという回避策もある。
@greenFlag がクリックされたとき [message1 v]を送る
別のブロックでの表現
[タイマー v] > (-1) のとき [Hello world!] と言う
現在、このブロックの代用として機能するのは、上記のスクリプトだけである。 Scratchは、プロジェクトを最初に開いたときすべてのハットブロックを休眠状態にしており、緑の旗がクリックされたタイミングで、タイマーが0にセットされて、「緑の旗がクリックされたとき」ブロックが動作を始める。 上記のスクリプトには1つだけ問題がある。プロジェクトの「中を見る」をクリックしたときに、自動的に動作を開始してしまうという点である。
[Scratch-StartClicked v] を受け取ったとき [Hello world!] と言う
Scratch2.0より前のバージョンでは、上記のブロックで代用することができた。
ストップがクリックされたとき
多くのユーザーから「ストップがクリックされたとき」というイベントブロックを導入してほしいとの声が上がっているが、これまでこの要望は、「ストップボタンは、すべてのプロジェクトを停止させるためのものであり、新たなスクリプトのトリガーとして機能させるつもりはない」という理由で毎回却下されている。
上記のように「ストップがクリックされたとき」に何らかのスクリプトを実行させたいときは、次のように記述できる。
定義 チェック ずっと タイマーをリセット // 0.1秒ごとにタイマーをリセットして、タイマー値を0.2より低く保つ (0.1)秒待つ end @greenFlag がクリックされたとき チェック [タイマー v] > (0.2) のとき // ストップボタンがクリックされたとき、タイマーがリセットされなくなるため、0.2以上になる ... // ストップボタンがクリックされたとき実行するスクリプトを記述する チェック