提供: Japanese Scratch-Wiki

(→‎ストップがクリックされたとき: 事実と異なる部分があったので英語版Wikiを参照して修正)
(→‎他の考え方: スクリプトと説明が一致しなかったため、英語版から補完)
58行目: 58行目:
 
<br>
 
<br>
  
== 他の考え方 ==
+
== 別のブロックで表現 ==
 このブロックの組み合わせ方が緑の旗がクリックされた時を使わずにプロジェクトを実行させる唯一の方法である。<br>
+
<scratchblocks>
[[Scratch]]はプロジェクトを開始させる時に使うハットブロックは緑の旗がクリックされてプロジェクトのタイマーが0の時に実行させる。<br>
+
[timer v] > (-1) のとき
だがこの方法はプロジェクトを実行するとすぐハットブロックが実行されてしまう。<br>
+
say [ハローワールド!]
 +
</scratchblocks>
 +
 
 +
 現在のところ、「緑の旗がクリックされたとき」ブロックの代用として機能するのは、上記のスクリプトだけである。<br>
 +
[[Scratch]]は、プロジェクトを最初に開いたときすべてのハットブロックを休眠状態にしており、緑の旗がクリックされたタイミングで、タイマーが0にセットされて、「緑の旗がクリックされたとき」ブロックが動作を始める<br>
 +
上記のスクリプトには1つだけ問題がある。プロジェクトの「中を見る」をクリックしたときに、自動的に動作を開始してしまうという点である。<br>
 
<br>
 
<br>
[[ファイル:Hello World.PNG]]
+
 
 +
<scratchblocks>
 +
[Scratch-スタートが押された v] を受け取ったとき
 +
[ハローワールド!] と言う
 +
</scratchblocks>
 +
 
 +
<br>
 +
 Scratch2.0より前のバージョンでは、上記のブロックで'''緑の旗がクリックされたとき'''を代用することができた。<br>
 
<br>
 
<br>
 Scratch2.0より前のバージョンではこのブロックを使うことで'''緑の旗がクリックされたとき'''を使わず実行させることができる。<br>
 
(だがこの方法は[[Scratch1.4]]でしか使うことはできない)<br>
 
 
<br>
 
<br>
  

2016年6月16日 (木) 04:33時点における版

緑の旗がクリックされたとき
カテゴリ イベント
タイプ ハットブロック
追加 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以上になる
... // ストップボタンがクリックされたとき実行するスクリプトを記述する
チェック