提供: Japanese Scratch-Wiki

(→‎エラー: 日本語表現の変更)
(ブロック画像の差し替えなど。)
1行目: 1行目:
 
{{ブロック
 
{{ブロック
 
|name = 緑の旗がクリックされたとき
 
|name = 緑の旗がクリックされたとき
|image = File:緑の旗がクリックされたとき.png
+
|block = <sb>@greenFlag がクリックされたとき</sb>
 
|category = [[イベントブロック|イベント]]
 
|category = [[イベントブロック|イベント]]
 
|type = [[ハットブロック|ハット]]
 
|type = [[ハットブロック|ハット]]
 
|added = 1.0
 
|added = 1.0
 
}}
 
}}
緑の旗がクリックされたとき[[ブロック]]([[イベントブロック]]/[[ハットブロック]])は、緑の旗がクリックされたときに、下に組まれたスクリプトを実行するブロックである。このスクリプトから他のスクリプトを開始することで、プログラム全体が実行されていく。
+
'''緑の旗がクリックされたとき'''[[ブロック]]([[イベントブロック]]/[[ハットブロック]])は、緑の旗がクリックされたときに、下に組まれたスクリプトを実行するブロックである。このスクリプトから他のスクリプトを開始することで、プログラム全体が実行されていく。
  
 
このブロックを使わないでプロジェクトを実行しようとすると、キーが押されたこと、または、スプライト(ステージ)がクリックされたことを検知する方法が考えられるが、この場合、最初のスクリプトから引き起こされたスクリプトの動作がすべて終わった段階で、プロジェクトが終了する。
 
このブロックを使わないでプロジェクトを実行しようとすると、キーが押されたこと、または、スプライト(ステージ)がクリックされたことを検知する方法が考えられるが、この場合、最初のスクリプトから引き起こされたスクリプトの動作がすべて終わった段階で、プロジェクトが終了する。
12行目: 12行目:
  
 
なお、このブロックはScratchで最も多く使われているブロックである。
 
なお、このブロックはScratchで最も多く使われているブロックである。
 
  
 
==使用例==
 
==使用例==
18行目: 17行目:
  
 
*[[プロジェクト]]を開始
 
*[[プロジェクト]]を開始
 +
 
*[[リスト]]の要素をすべて削除する
 
*[[リスト]]の要素をすべて削除する
 
<scratchblocks>@ がクリックされたとき
 
<scratchblocks>@ がクリックされたとき
46行目: 46行目:
  
 
上記のようなブロックを実行した後も、スクリプトは正常に継続される。
 
上記のようなブロックを実行した後も、スクリプトは正常に継続される。
 
 
<scratchblocks>@ がクリックされたとき
 
<scratchblocks>@ がクリックされたとき
 
画像効果をなくす
 
画像効果をなくす
57行目: 56行目:
 
end</scratchblocks>
 
end</scratchblocks>
  
== エラー ==
+
==エラー==
 
1つのプロジェクト内でこのブロックを複数使用していると、プロジェクト実行時に原因が特定しづらいエラーを引き起こすことがある(たとえば、スタートボタンを2回押すたびにエラーが発生する、動作のタイミングがずれるなどの現象が起こる)。
 
1つのプロジェクト内でこのブロックを複数使用していると、プロジェクト実行時に原因が特定しづらいエラーを引き起こすことがある(たとえば、スタートボタンを2回押すたびにエラーが発生する、動作のタイミングがずれるなどの現象が起こる)。
このエラーに対するもっともシンプルな回避策は、「緑の旗がブロックされたとき」は1つだけ使用して、その中に[[メッセージ を送る]]ブロックを入れて、プロジェクト開始時に実行したいその他のスクリプトは、すべてそのメッセージで実行されるようにするというものだ。その他に、緑の旗を何回かクリックする、ターボモードで実行するという回避策もある。
+
このエラーに対するもっともシンプルな回避策は、「緑の旗がブロックされたとき」は1つだけ使用して、その中に[[() を送る (ブロック)|() を送る]]ブロックを入れて、プロジェクト開始時に実行したいその他のスクリプトは、すべてそのメッセージで実行されるようにするというものだ。その他に、緑の旗を何回かクリックする、ターボモードで実行するという回避策もある。
  
 
<scratchblocks>
 
<scratchblocks>
65行目: 64行目:
 
[message1 v]を送る
 
[message1 v]を送る
 
</scratchblocks>
 
</scratchblocks>
<br>
 
<br>
 
  
== 別のブロックで表現 ==
+
==別のブロックでの表現==
 
<scratchblocks>
 
<scratchblocks>
[timer v] > (-1) のとき
+
[タイマー v] > (-1) のとき
say [ハローワールド!]
+
[Hello world!] と言う
 
</scratchblocks>
 
</scratchblocks>
  
 現在のところ、「緑の旗がクリックされたとき」ブロックの代用として機能するのは、上記のスクリプトだけである。<br>
+
現在、このブロックの代用として機能するのは、上記のスクリプトだけである。
[[Scratch]]は、プロジェクトを最初に開いたときすべてのハットブロックを休眠状態にしており、緑の旗がクリックされたタイミングで、タイマーが0にセットされて、「緑の旗がクリックされたとき」ブロックが動作を始める<br>
+
[[Scratch]]は、プロジェクトを最初に開いたときすべてのハットブロックを休眠状態にしており、緑の旗がクリックされたタイミングで、タイマーが0にセットされて、「緑の旗がクリックされたとき」ブロックが動作を始める。
上記のスクリプトには1つだけ問題がある。プロジェクトの「中を見る」をクリックしたときに、自動的に動作を開始してしまうという点である。<br>
+
上記のスクリプトには1つだけ問題がある。プロジェクトの「中を見る」をクリックしたときに、自動的に動作を開始してしまうという点である。
<br>
 
  
 
<scratchblocks>
 
<scratchblocks>
[Scratch-スタートが押された v] を受け取ったとき
+
[Scratch-StartClicked v] を受け取ったとき
[ハローワールド!] と言う
+
[Hello world!] と言う
 
</scratchblocks>
 
</scratchblocks>
  
<br>
+
Scratch2.0より前のバージョンでは、上記のブロックで代用することができた。
 Scratch2.0より前のバージョンでは、上記のブロックで'''緑の旗がクリックされたとき'''を代用することができた。<br>
 
<br>
 
<br>
 
  
 
==ストップがクリックされたとき==
 
==ストップがクリックされたとき==
93行目: 86行目:
  
 
上記のように「ストップがクリックされたとき」に何らかのスクリプトを実行させたいときは、次のように記述できる。
 
上記のように「ストップがクリックされたとき」に何らかのスクリプトを実行させたいときは、次のように記述できる。
 
 
<scratchblocks>定義 チェック
 
<scratchblocks>定義 チェック
 
ずっと
 
ずっと
99行目: 91行目:
 
(0.1)秒待つ  
 
(0.1)秒待つ  
 
end
 
end
 
  
 
@ がクリックされたとき
 
@ がクリックされたとき
 
チェック
 
チェック
 
  
 
[タイマー v] > (0.2) のとき // ストップボタンがクリックされたとき、タイマーがリセットされなくなるため、0.2以上になる
 
[タイマー v] > (0.2) のとき // ストップボタンがクリックされたとき、タイマーがリセットされなくなるため、0.2以上になる
111行目: 101行目:
 
{{イベントブロック}}
 
{{イベントブロック}}
 
[[カテゴリ:イベントブロック]]
 
[[カテゴリ:イベントブロック]]
 +
 
[[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:Когда зелёный флаг нажат (блок)]]

2017年4月10日 (月) 10:59時点における版

緑の旗がクリックされたとき
@greenFlag がクリックされたとき
カテゴリ イベント
タイプ ハット
追加 Scratch 1.0

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

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

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

使用例

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

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

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

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

エラー

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

@ がクリックされたとき
[message1 v]を送る

別のブロックでの表現

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

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

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

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

ストップがクリックされたとき

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

上記のように「ストップがクリックされたとき」に何らかのスクリプトを実行させたいときは、次のように記述できる。

定義 チェック
ずっと
タイマーをリセット // 0.1秒ごとにタイマーをリセットして、タイマー値を0.2より低く保つ
(0.1)秒待つ 
end

@ がクリックされたとき
チェック

[タイマー v] > (0.2) のとき // ストップボタンがクリックされたとき、タイマーがリセットされなくなるため、0.2以上になる
... // ストップボタンがクリックされたとき実行するスクリプトを記述する
チェック
Cookieは私達のサービスを提供するのに役立ちます。このサービスを使用することにより、お客様はCookieの使用に同意するものとします。