提供: Japanese Scratch-Wiki

(全部消す,出典がないなら見出しはいらないのでは)
 
(6人の利用者による、間の19版が非表示)
1行目: 1行目:
{{ブロック
+
{{ひらがなヘッダ}}{{ブロック
|name = 緑の旗がクリックされたとき
+
|name = 緑の旗が押されたとき
|image = File:緑の旗がクリックされたとき.png
+
|block = <sb>@greenFlag が押されたとき::events hat</sb>
|category = イベント
+
|category = [[イベントブロック|イベント]]
|type = ハットブロック
+
|type = [[ハットブロック|ハット]]
 
|added = 1.0
 
|added = 1.0
}}緑の旗がクリックされたとき[[ブロック]]は、イベントカテゴリのハットブロックである。緑の旗がクリックされた時に、このブロックの下に組まれたブロックが実行される。これらのスクリプトは他のスクリプトをアクティブにし、全体のプログラムを有効にすることができる。
+
}}
 +
'''緑の旗が押されたとき'''[[ブロック]]([[イベントブロック]]/[[ハットブロック]])は、緑の旗が押されたときに、下に組まれたスクリプトを実行するブロックである。このスクリプトから他のスクリプトを開始することで、プログラム全体が実行されていく。
  
このブロックを使わない場合、プロジェクトを実行することができる​​方法は、キーの押下またはスプライト(ステージ)のクリックを感知する以外の方法は無い。また、このブロックはScratchで最も多く使われているブロックである。
+
このブロックを使わないでプロジェクトを実行しようとすると、キーが押されたこと、または、スプライト(ステージ)が押されたことを検知する方法が考えられるが、この場合、最初のスクリプトから引き起こされたスクリプトの動作がすべて終わった段階で、プロジェクトが終了する。
 +
このブロックを使わないプロジェクトを作成することは可能だが、推奨されない。緑の旗はプロジェクトの開始を表し、このブロックによってプロジェクトの開始ポイントが判断できるからである。
 +
 
 +
なお、このブロックはScratchで最も多く使われているブロックである。
 +
 
 +
[[Scratch 3.0]]の初期でブロック名が変わった。以前は「緑の旗がクリックされたとき」であった。
  
このブロックを使わずプロジェクトを作成することは可能だが、推奨されない。旗はプロジェクトの開始を表し、プロジェクトが開始されたときにこのブロックが感知されるからだ。
 
<!--ここから未編集-->
 
 
==使用例==
 
==使用例==
このブロックの下に組まれたブロックはプロジェクトが開始された時にしか実行されません。以下、一般的な実用例です。<br>
+
通常、プロジェクトを開始するといろいろな動作が始まるが、これはそれらの動作がこのブロックの下に記述されているからである。このブロックのよくある使用例を次にあげる。
<br>
 
*プロジェクトを開始する時、リストの中を全て削除する<br>
 
<scratchblocks>
 
  
@ がクリックされたとき
+
*[[プロジェクト]]を開始
(すべて v)番目を[リスト v]から削除する
 
</scratchblocks>
 
<br>
 
<br>
 
*変数をリセットする<br>
 
<scratchblocks>
 
  
@ がクリックされたとき
+
*[[リスト]]の要素をすべて削除する
[変数 v]を(0)にする
+
<scratchblocks>@greenFlag が押されたとき::events hat
</scratchblocks>
+
[リスト v]のすべてを削除する::list</scratchblocks>
  
<br>
+
*[[変数]]をリセット
<br>
+
<scratchblocks>@greenFlag が押されたとき::events hat
*スプライトを隠したりしてその場のシーンを設定する<br>
+
[変数 v]を(0)にする</scratchblocks>
<scratchblocks>
 
  
@ がクリックされたとき
+
*[[スプライト]]の表示/非表示を切り替えたり、[[コスチューム]]を変えたりしてシーンの設定を行う
 +
<scratchblocks>@greenFlag が押されたとき::events hat
 
隠す
 
隠す
コスチュームを [costume1 v] にする
+
コスチュームを [コスチューム1 v] にする</scratchblocks>
</scratchblocks>
 
<br>
 
*ペンで書いたデータをリセット<br>
 
<scratchblocks>
 
  
@ がクリックされたとき
+
*すべてのペンを消す
消す
+
<scratchblocks>@greenFlag が押されたとき::events hat
</scratchblocks>
+
全部消す::pen</scratchblocks>
<br>
 
<br>
 
*音楽を再生する<br>
 
<scratchblocks>
 
  
@ がクリックされたとき
+
*音楽を再生する
 +
<scratchblocks>@greenFlag が押されたとき::events hat
 
ずっと
 
ずっと
   
+
終わるまで [v] の音を鳴らす
終わるまで [meow v] の音を鳴らす
+
end</scratchblocks>
end
 
  
</scratchblocks>
+
*[[クローン]]を作成する
<br>
+
<scratchblocks>@greenFlag が押されたとき::events hat
<br>
+
[自分自身 v] のクローンを作る</scratchblocks>
 このようなブロックを使った後は通常通りにブロックは実行されます。(例)<br>
 
<scratchblocks>
 
  
@ がクリックされたとき
+
上記のようなブロックを実行した後も、スクリプトは正常に継続される。
 +
<scratchblocks>@greenFlag が押されたとき::events hat
 
画像効果をなくす
 
画像効果をなくす
 
x座標を (0) 、y座標を (0) にする
 
x座標を (0) 、y座標を (0) にする
 +
[開始! v]を送る
 
ずっと
 
ずっと
   
+
もし <(メーター) < [0]> なら
もし <(meter) < [ 0]> なら
 
 
 
 
[あなたの負け v]を送る
 
[あなたの負け v]を送る
   
 
 
end
 
end
 +
end</scratchblocks>
  
end
+
==エラー==
 +
1つのプロジェクト内でこのブロックを複数使用していると、プロジェクト実行時に原因が特定しづらいエラーを引き起こすことがある(たとえば、スタートボタンを2回押すたびにエラーが発生する、動作のタイミングがずれるなどの現象が起こる)。
 +
このエラーに対するもっともシンプルな回避策は、「緑の旗が押されたとき」は1つだけ使用して、その中に[[() を送る (ブロック)|() を送る]]ブロックを入れて、プロジェクト開始時に実行したいその他のスクリプトは、すべてそのメッセージで実行されるようにするというものだ。その他に、緑の旗を何回か押す、[[ターボモード]]で実行するという回避策もある。
  
 +
<scratchblocks>
 +
@greenFlag が押されたとき::events hat
 +
[message1 v]を送る
 
</scratchblocks>
 
</scratchblocks>
<br>
 
  
== エラー ==
+
==別のブロックでの表現==
たくさんのブロックを同時に実行させるとプロジェクトの実行した時に見つかりにくいエラーが起こる可能性がある。<br>
 
だがプロジェクトを実行させた時にメッセージ(Broadcast)を使って実行させると容易に直る。<br>
 
(あまりプロジェクトの開始時に同時にブロックを実行させるのも良くない)<br>
 
 
<scratchblocks>
 
<scratchblocks>
 
+
[タイマー v] > (-1) のとき
@ がクリックされたとき
+
[Hello world!] と言う
[message1 v]を送る
 
 
</scratchblocks>
 
</scratchblocks>
<br>
 
<br>
 
  
== 他の考え方 ==
+
現在、このブロックの代用として機能するのは、上記のスクリプトだけである。
 このブロックの組み合わせ方が緑の旗がクリックされた時を使わずにプロジェクトを実行させる唯一の方法である。<br>
+
[[Scratch]]は、プロジェクトを最初に開いたときすべてのハットブロックを休眠状態にしており、緑の旗が押されたタイミングで、タイマーが0にセットされて、「緑の旗が押されたとき」ブロックが動作を始める。
[[Scratch]]はプロジェクトを開始させる時に使うハットブロックは緑の旗がクリックされてプロジェクトのタイマーが0の時に実行させる。<br>
+
上記のスクリプトには1つだけ問題がある。プロジェクトの「中を見る」を押したときに、自動的に動作を開始してしまうという点である。
だがこの方法はプロジェクトを実行するとすぐハットブロックが実行されてしまう。<br>
 
<br>
 
[[ファイル:Hello World.PNG]]
 
<br>
 
 Scratch2.0より前のバージョンではこのブロックを使うことで'''緑の旗がクリックされたとき'''を使わず実行させることができる。<br>
 
(だがこの方法は[[Scratch1.4]]でしか使うことはできない)<br>
 
<br>
 
  
== ストップがクリックされたとき ==
 
 ストップがクリックされたときは、沢山のユーザーの願いを取り入れて作られた一つのイベントブロックである。またこれはプロジェクトを完全に停止させるために使う。<br>
 
<br>
 
 ちなみにストップブロックと別に同じ効果をもたせる方法は以下参照。
 
 
<scratchblocks>
 
<scratchblocks>
定義 チェック
+
[Scratch-StartClicked v] を受け取ったとき
ずっと
+
[Hello world!] と言う
 
 
タイマーをリセット
 
(0.1)秒待つ
 
 
 
end
 
 
</scratchblocks>
 
</scratchblocks>
<br>
 
<scratchblocks>
 
  
@ がクリックされたとき
+
Scratch2.0より前のバージョンでは、上記のブロックで代用することができた。
チェック
 
  
</scratchblocks>
+
==停止ボタンが押されたとき==
<br>
+
{{主な記事|停止後にスクリプトを動かす}}
<scratchblocks>
+
多くのユーザーから「停止ボタンが押されたとき」というイベントブロックを導入してほしいとの声が上がっているが、これまでこの要望は、「停止ボタンは、すべてのプロジェクトを停止させるためのものであり、新たなスクリプトの実行用として機能させるつもりはない」という理由で毎回却下されている。
もし<[タイマー] < (0.2)>なら
 
...
 
チェック
 
  
</scratchblocks>
+
{{イベントブロック}}
<br>
+
[[カテゴリ:イベントブロック]]
  
 
[[en:When Green Flag Clicked (block)]]
 
[[en:When Green Flag Clicked (block)]]
 
[[de:Wenn Grüne Flagge angeklickt (Block)]]
 
[[de:Wenn Grüne Flagge angeklickt (Block)]]
 
[[id:ketika bendera hijau diklik (balok)]]
 
[[id:ketika bendera hijau diklik (balok)]]
[[ru:Когда зелёный флаг нажат (блок)]]
+
[[ru:Когда зелёный флаг нажат (блок)]]{{デフォルトソート:みとりのはたかおされたとき (ふろつく)}}

2020年5月6日 (水) 05:15時点における最新版

このきじは ひらがなのページがあります。ひらがなでよむ
緑の旗が押されたとき
@greenFlag が押されたとき::events hat
カテゴリ イベント
タイプ ハット
追加 Scratch 1.0

緑の旗が押されたときブロックイベントブロックハットブロック)は、緑の旗が押されたときに、下に組まれたスクリプトを実行するブロックである。このスクリプトから他のスクリプトを開始することで、プログラム全体が実行されていく。

このブロックを使わないでプロジェクトを実行しようとすると、キーが押されたこと、または、スプライト(ステージ)が押されたことを検知する方法が考えられるが、この場合、最初のスクリプトから引き起こされたスクリプトの動作がすべて終わった段階で、プロジェクトが終了する。 このブロックを使わないプロジェクトを作成することは可能だが、推奨されない。緑の旗はプロジェクトの開始を表し、このブロックによってプロジェクトの開始ポイントが判断できるからである。

なお、このブロックはScratchで最も多く使われているブロックである。

Scratch 3.0の初期でブロック名が変わった。以前は「緑の旗がクリックされたとき」であった。

使用例

通常、プロジェクトを開始するといろいろな動作が始まるが、これはそれらの動作がこのブロックの下に記述されているからである。このブロックのよくある使用例を次にあげる。

@greenFlag が押されたとき::events hat
[リスト v]のすべてを削除する::list
@greenFlag が押されたとき::events hat
[変数 v]を(0)にする
@greenFlag が押されたとき::events hat
隠す
コスチュームを [コスチューム1 v] にする
  • すべてのペンを消す
@greenFlag が押されたとき::events hat
全部消す::pen
  • 音楽を再生する
@greenFlag が押されたとき::events hat
ずっと
終わるまで [曲 v] の音を鳴らす
end
@greenFlag が押されたとき::events hat
[自分自身 v] のクローンを作る

上記のようなブロックを実行した後も、スクリプトは正常に継続される。

@greenFlag が押されたとき::events hat
画像効果をなくす
x座標を (0) 、y座標を (0) にする
[開始! v]を送る
ずっと
もし <(メーター) < [0]> なら
[あなたの負け v]を送る
end
end

エラー

1つのプロジェクト内でこのブロックを複数使用していると、プロジェクト実行時に原因が特定しづらいエラーを引き起こすことがある(たとえば、スタートボタンを2回押すたびにエラーが発生する、動作のタイミングがずれるなどの現象が起こる)。 このエラーに対するもっともシンプルな回避策は、「緑の旗が押されたとき」は1つだけ使用して、その中に() を送るブロックを入れて、プロジェクト開始時に実行したいその他のスクリプトは、すべてそのメッセージで実行されるようにするというものだ。その他に、緑の旗を何回か押す、ターボモードで実行するという回避策もある。

@greenFlag が押されたとき::events hat
[message1 v]を送る

別のブロックでの表現

[タイマー v] > (-1) のとき
[Hello world!] と言う

現在、このブロックの代用として機能するのは、上記のスクリプトだけである。 Scratchは、プロジェクトを最初に開いたときすべてのハットブロックを休眠状態にしており、緑の旗が押されたタイミングで、タイマーが0にセットされて、「緑の旗が押されたとき」ブロックが動作を始める。 上記のスクリプトには1つだけ問題がある。プロジェクトの「中を見る」を押したときに、自動的に動作を開始してしまうという点である。

[Scratch-StartClicked v] を受け取ったとき
[Hello world!] と言う

Scratch2.0より前のバージョンでは、上記のブロックで代用することができた。

停止ボタンが押されたとき

詳細は「停止後にスクリプトを動かす」を参照

多くのユーザーから「停止ボタンが押されたとき」というイベントブロックを導入してほしいとの声が上がっているが、これまでこの要望は、「停止ボタンは、すべてのプロジェクトを停止させるためのものであり、新たなスクリプトの実行用として機能させるつもりはない」という理由で毎回却下されている。