提供:Japanese Scratch-Wiki
- "ブロック"はこのページにリダイレクトされました。アカウントの凍結については、アカウントブロックをご覧ください。 Scratch 2.0のブロックについては、ブロック (2.0)をご覧ください。 ブロックプラグインについては、ブロックプラグインをご覧ください。
ブロックは、Scratchのプログラムを組み立てるために使う部品で、ジグゾーパズルのようにつなげて使用する。それぞれのブロックは、役割(「イベントを受け取る」「命令を出す」「値を返す」「真偽を返す」「スクリプトの終わりを表す」など)によって異なる形をしており、それぞれの形には、その形がピッタリはまる専用のスロット(ブロックを入れる場所)が存在している(これによって、プログラム上の構文エラーの発生を防いでいる)。なお、複数のブロックを組み合わせてひとまとめにしたものを、スクリプトという。この記事では特に言及していない場合、拡張機能のブロックは除外している。これについては拡張機能の記事を参照してほしい。
Scratch 3.0には、ブロックパレットに存在しないブロックや、機能を持たないブロックも含めて128個のブロックがある。(定義系のブロックも入れると134個)
ブロックには次の10種類のカテゴリが存在する。
動き、見た目、音、イベント、制御、調べる、演算、変数、リスト[注釈 1]、ブロック定義
ただし、Mod版Scratchには、その他のカテゴリやブロックを持つものもある。
形状別に見た場合は、Scratch全体で、ハットブロックが7個、C型ブロックが5個、値ブロックが33個、真偽ブロックが13個、キャップブロックが2個、スタックブロックが60個存在する。
ブロックの形状
ブロックの形は、全部で6種類存在する: ハットブロック、スタックブロック、真偽ブロック、値ブロック、C型ブロック、キャップブロック。
ハットブロック
- 詳細は「ハットブロック」を参照
ハットブロック(Hat Block)とは、スクリプトを開始するブロックであり、上が丸く、下に出っぱりがある形状をしている(したがって、下にしかブロックをつなげられない)。ハットブロックは全部で7個あり、そのうち6個が「イベント」、1個が「制御」に含まれている。 次に、ハットブロックの例を示す:
@greenFlag が押されたとき::events hat
このスプライトが押されたとき::events hat
スタックブロック
- 詳細は「スタックブロック」を参照
スタックブロック(Stack Block)は、各種の命令を実行するブロックであり、上にくぼみ、下に出っぱりがある形状をしている(したがって、上下にブロックをつなげられる)。スタックブロックは全部で60個あり、ブロック形状別に見た場合、もっとも数が多い。次に、スタックブロックの例を示す:
(10)歩動かす
()と言う
真偽ブロック
- 詳細は「真偽ブロック」を参照
真偽ブロック(Boolean Block)は、真(True)または偽(False)のどちらかの状態を表すブロックである。たとえば誰かに、「2+2は4ですか?」という質問をすると、たずねられた人は「はい」「いいえ」のどちらかの答えを返すことになるが、真偽ブロックもこれと同じように真(はい)、偽(いいえ)のいずれかを返す。真偽ブロックは、全部で13個存在しており、六角形で表される。
値ブロック
- 詳細は「値ブロック」を参照
値ブロック(Reporter Block)は、数値や文字列を返すブロックである。たとえば誰かに「2+2はいくつですか?」と尋ねれば、「4」という答えが返ってくるだろうが、値ブロックもこれと同じように数値や文字列を答えとして返す。なお、質問できる内容は数式だけではない。値ブロックは、だ円形をしており、全部で33個存在する(値ブロックは、変数やリストを自分で作成した場合、理論上、無限に増やせるが、ここではそういったブロックは数に入れていない)。
C型ブロック
- 詳細は「C型ブロック」を参照
C型ブロック(C Block)は、アルファベットの「C」の形をしたブロックであり、"ラップブロック"とも呼ばれる。C型ブロックには、間に挟まれたブロックを繰り返し実行したり、条件によってどの処理を実行するかを決める役割がある。C型ブロックは全部で5種類存在し、それらはすべて制御カテゴリに属している。C型ブロックの下部は、でっぱりがあるものとないものがある。
キャップブロック
- 詳細は「キャップブロック」を参照
キャップブロック(Cap Block)は、スクリプトを停止するブロックで、上部にへこみがあり、下部は平らである(したがって、このブロックの下には他のブロックをつなげることができない)キャップブロックは全体で2個存在しており、どちらも制御カテゴリに属している。
ブロック一覧
Scratch 3.0には拡張機能とユーザーが定義したブロックを除けば全部で120個のブロックが存在する。
動きブロック
- 詳細は「動きブロック」を参照
動きブロックは、スプライトの動きをコントロールするブロック群である。Scratch 3.0には、全部で18個の動きブロックが存在する。 Scratch 3.0の動きブロックには、15個のスタックブロックが存在する:
- () 歩動かす — スプライトを、指定した歩数、現在の「向き」に動かす
- () 度回す — スプライトを、現在の向きから指定した角度、時計回りに回転する。
- () 度回す — スプライトを、現在の向きから指定した角度、反時計回りに回転する。
- () 度に向ける — スプライトを、指定した角度を向くように回転する
- () へ向ける — スプライトを、マウスポインターや他のスプライトの方向を向くように回転する。
- x座標を () 、y座標を () にする — 指定したx、y座標の位置にスプライトを移動する。
- () へ行く — スプライトを、マウスポインターや他のスプライトの位置に移動する。
- () 秒で () へ行く — 指定した時間を費やして、マウスポインターや他のスプライトの位置になめらかに移動する。
- () 秒でx座標を () に、y座標を () に変える — 指定した時間を費やして、スプライトを指定した位置になめらかに移動する。
- x座標を () ずつ変える — スプライトのx座標を、現在の座標から指定した量、変化させる。
- x座標を () にする — スプライトの x座標 を指定した数値にする。
- y座標を () ずつ変える — スプライトのy座標を、現在の座標から指定した量、変化させる。
- y座標を () にする — スプライトのy座標を指定した数値にする。
- もし端に着いたら、跳ね返る — スプライトが画面の端に接触したら、スプライトの向きを反転させる。
- 回転方法を () にする — スプライトの回転方法を、設定する。
Scratch 3.0の動きブロックには、3個の値ブロックが存在する:
見た目ブロック
- 詳細は「見た目ブロック」を参照
見た目ブロック は、スプライトの見た目をコントロールするブロック群である。Scratch 3.0には、ステージ専用のブロックも含め全部で21個の見た目ブロックが存在する。
Scratch 3.0の見た目ブロックには、18個のスタックブロックが存在する:
- () と () 秒言う — 指定した時間、スプライトの上にふきだしが表示される。
- () と言う — スプライトの上にふきだしが表示される。このふきだしは自動では消えない。
- () と () 秒考える — 指定した時間、心の声を表すふきだしがスプライトの上に表示される。
- () と考える — スプライトの上に心の声を表すふきだしが表示される。このふきだしは自動では消えない。
- 表示する — スプライトを表示する。
- 隠す — スプライトを隠す。
- コスチュームを () にする — スプライトのコスチュームを指定したものに変える。
- 背景を () にする— 背景を指定したものに変える。
- 背景を () にして待つ — 「背景を () にする」ブロック同様、背景を変更し、さらに、これによって引き起こされたすべてのハットブロック内のスクリプトが終了するまで待つ(ステージ専用ブロック)。
- 次のコスチュームにする — スプライトのコスチュームをコスチュームリストの次のものに変更する。スプライト専用。
- 次の背景にする — 背景を背景リストの次のものにする。
- () の効果を () ずつ変える — 指定した画像効果の適用量を、現在の量から指定した値、変更する。
- () の効果を () にする — 指定した画像効果の適用量を、指定した値にする。
- 画像効果をなくす — スプライトに指定されたすべての画像効果を解除する。
- 大きさを () ずつ変える — スプライトの大きさを、現在の値から指定した値、変更する。
- 大きさを () % にする — スプライトの大きさを指定した値にする。
- () へ移動する — スプライトを最前面や最背面に移動する。
- () 層 () — スプライトの重なり順を、指定した数値分、前面や背面に移動する。
Scratch 3.0の見た目ブロックには、値ブロックが3個存在する。
- コスチュームの () — スプライトの現在のコスチュームのリストにおける番号または名前。
- 背景の () — 現在の背景の番号または名前。
- 大きさ — 選択中のスプライトの大きさ。
音ブロック
- 詳細は「音ブロック」を参照
音ブロックは、音とMIDI機能に関するコントロールを行うブロック群である。Scratch 3.0には9個の音ブロックが存在する。
Scratch 3.0の音ブロックには、8個のスタックブロックが存在する。
- () の音を鳴らす — スクリプトを停止しないで、音(音楽)を鳴らす。
- 終わるまで () の音を鳴らす — 最後まで音(音楽)を鳴らしつつ、その間、スクリプトの実行を停止する。
- すべての音を止める — 現在鳴っている音をすべて止める
- () の効果を () ずつ変える — 音の効果を指定された値だけ変える
- () の効果を () にする — 音の効果を指定された値にする
- 音の効果をなくす — 音の効果をすべてなくす。
- 音量を () ずつ変える — 音量を、現在の音量から、指定した量変更する。
- 音量を () % にする — 音量を指定した量にする。
Scratch 3.0の音ブロックには、1個の値ブロックが存在する:
- 音量 — 音量
イベントブロック
- 詳細は「イベントブロック」を参照
イベントブロック はイベントをコントロールして、各種のスクリプト開始のきっかけとなるブロック群である。Scratch 3.0には、全部で8個のイベントブロックが存在する。 Scratch 3.0のイベントブロックには、次の6個のハットブロックが存在する:
- 緑の旗が押されたとき — 緑の旗が押されたとき、スクリプトを開始する。
- () キーが押されたとき — 指定したキーが押されたとき、スクリプトを開始する。
- このスプライトが押されたとき・ステージが押されたとき — スプライト(ステージ)が押されたとき、スクリプトを開始する。
- 背景が () になったとき — 背景が選択したものに変更されたとき、スクリプトを開始する。
- () > () のとき — 1つめの値が2つめの値より大きいとき、スクリプトを開始する。
- () を受け取ったとき — メッセージを受け取ったとき、スクリプトを開始する。
Scratch 3.0のイベントブロックには、次の2個のスタックブロックが存在する:
- () を送る — Scratchプログラム全体にメッセージを送る。送ったメッセージが指定された「() を受け取ったとき」ブロックがあれば、そのスクリプトを実行する。
- () を送って待つ — 「() を送る」ブロックと同様だが、メッセージを送った結果開始したスクリプトの処理がすべて終了するまで、このブロックが置かれた側のスクリプトの実行を中断して待つ。
制御ブロック
- 詳細は「制御ブロック」を参照
制御ブロックはスクリプトを制御するためのブロック群である。Scratch 3.0には、11個の制御ブロックが存在する。
Scratch 3.0の制御ブロックには、1個のハットブロックが存在する:
- クローンされたとき (スプライトのみ) — クローンが作成されるたびに指定したスクリプトを実行するが、スクリプト実行の対象となるのは、作成されたそのクローンだけである。
Scratch 3.0の制御ブロックには、3個のスタックブロックが存在する:
- () 秒待つ — 指定された秒数、スクリプトの実行を止める。
- () まで待つ — 与えられた条件が満たされるまで(Trueになるまで)、スクリプトの実行を止める。
- () のクローンを作る — 指定したクローンを作成する。
Scratch 3.0の制御ブロックには、5個のC型ブロックが存在する:
- () 回繰り返す — 指定した回数、処理を繰り返す。
- ずっと — 永遠に処理を繰り返す。
- もし () なら — 「もし () なら」で与えられた条件を確認して、条件が満たされていれば(Trueであれば)、中に入れられたブロックを実行する。
- もし () なら、でなければ — 「もし () なら」で与えられた条件を確認して、条件が満たされていれば(Trueであれば)、中に入れられた1番目のブロックのまとまりを実行し、条件が満たされていなければ(Falseであれば)、2番目のブロックのまとまりを実行する。
- () まで繰り返す — 条件が最初に満たされたとき、繰り返し処理を止める。
Scratch 3.0の制御ブロックには、2個のキャップブロックが存在する:
- () を止める — ドロップダウンメニューから選択したスクリプトを停止する。なお、「スプライトの他のスクリプト」が選択されたときは、スタックブロックになる。翻訳上の都合で、実質は「を止める」までが引数となっている。
- このクローンを削除する (スプライトのみ) — このスクリプトを実行したクローンを削除する。
調べるブロック
- 詳細は「調べるブロック」を参照
調べるブロックは、何らかの事象を検出するブロック群である。Scratch 3.0には、調べるブロックが18個存在する。
Scratch 3.0の調べるブロックには、3個のスタックブロックが存在する:
- () と聞いて待つ — 入力ボックスが表示される。— このボックスに値を入力すると、その値が答え 変数に入れられる。
- タイマーをリセット — タイマーをリセットする。
- ドラッグ () ようにする — ドラッグモードを設定する。
Scratch 3.0の調べるブロックには、5個の真偽ブロックが存在する:
- () に触れた — 選択中のスプライトがマウスポインターや他のスプライトに触れているかどうかを判別して、その真偽を返す。
- () 色に触れた — 選択中のスプライトが指定した色に触れているかどうかを判別して、その真偽を返す。
- () 色が () 色に触れた — 選択中のスプライトから指定した色が、もう1つの色に触れているかどうかを判別してその真偽を返す。
- () キーが押された — 指定したキーが押されているかどうかを判別して、その真偽を返す。
- マウスが押された — マウスが押されているかどうかを判別して、その真偽を返す。
Scratch 3.0の調べるブロックには、10個の値ブロックが存在する:
- () までの距離 — 選択中のスプライトからマウスポインターまたは指定したスプライトまでの距離を返す。
- 答え — 最後に実行した「() と聞いて待つ」ブロックの入力結果。
- マウスのx座標 — マウスポインターのx座標。
- マウスのy座標 — マウスポインターのy座標。
- 音量 — コンピュータのマイクが検知した音量の大きさ。
- タイマー — Scratchプログラムを開始してから、または、タイマーがリセットされてからの経過時間。
- () の () — ステージまたは指定したスプライトのx座標、y座標、向き、コスチューム、大きさ、音量 。
- 現在の () — 選択した単位の時間情報(年、月、日、曜日、時、分、秒)。
- 2000年からの日数 — 2000年1月1日からの経過日数。
- ユーザー名 — 実行中のユーザーのユーザー名。
演算ブロック
- 詳細は「演算ブロック」を参照
演算ブロックは、数式、数学関数、文字列処理を行うブロック群である。Scratch 3.0には、18個の演算ブロックが存在する。
Scratch 3.0の演算ブロックには、7個の真偽ブロックが存在する:
- () < () — 1つめの値が2つめの値より小さいかどうかを判別して返す。
- () = () — 1つめの値と2つめの値が同じかどうかを判別して返す。
- () > () — 1つめの値が2つめの値より大きいかどうかを判別して返す。
- () かつ () — 2つの条件を連結する。1つめの条件と2つめの条件が両方とも真のとき、真を返す。
- () または () — 2つの条件を連結する。1つめの条件と2つめの条件を別々に判断して、どちらかが真を返すとき、真を返す。
- () ではない — 与えられた条件が偽のとき(条件が満たされないとき)、真を返す。
- () に () が含まれる — 指定した文字列に指定した文字列が含まれるとき真を返す。
Scratch 3.0の演算ブロックには、11個の値ブロックが存在する:
- () + () — 足し算の結果(和)
- () - () — 引き算の結果(差)
- () * () — かけ算の結果(積)
- () / () — わり算の結果(商)
- () から () までの乱数 — 指定した2つの値の範囲で乱数(ランダムな数)を返す。
- () と () — 2つの値を接続する。
- () の () 番目の文字 — 指定した位置の文字などを返す。
- () の長さ — 指定した文字などの長さ。
- () を () で割った余り — わり算の余り(剰余)
- () を四捨五入 — 値を四捨五入して、一番近い整数を返す。
- () の () — 指定した値の、絶対値(abs)、切り下げ、切り上げ、平方根(sqrt)、正弦(sin)、余弦(cos)、正接(tan)、逆正弦(asin)、逆余弦(acos)、逆正接(atan)自然対数(ln))、対数(log)、指数関数(e^)、底を10とする指数関数(10^)を返す。
変数ブロック
- 詳細は「変数ブロック」を参照
変数ブロック
- 詳細は「変数ブロック (サブカテゴリ)」を参照
変数ブロック は、値や文字列を持つブロックである。Scratch 3.0には、5個の変数ブロックが存在する。
Scratch 3.0の変数ブロックには、4個のスタックブロックが存在する:
- () を () にする — 指定した変数に、指定した値を入れる。
- () を () ずつ変える — 指定した変数の値を、現在の値から指定した量、増減させる。
- 変数 () を表示する —指定した変数のステージモニターを表示する。
- 変数 () を隠す — 指定した変数のステージモニターを隠す。
Scratch 3.0の変数には、値ブロックが1個存在する:
- () — その変数の値
リストブロック
- 詳細は「リストブロック」を参照
リストブロック はリストを扱うためのブロック群である。これらのブロックは変数カテゴリに含まれている。Scratch 3.0には、全部で12個のリストブロックが存在する。
Scratch 3.0のリストブロックには、スタックブロックが7個存在する:
- () を () に追加する — リストに指定した値の要素を1つ追加する (このとき、新しい要素はリストの最後に追加される)。
- () の () 番目を削除する — リストの指定した要素を削除する。
- () のすべてを削除する — リストの要素をすべて削除する。
- () の () 番目に () を挿入する — リストに指定した値の要素を1つ追加する。このとき、新しい要素は指定した位置に入れられる。
- () の () 番目を () で置き換える — リストの指定した要素の中身を、指定した値に置き換える。
- リスト () を表示する — リストモニターを表示する。
- リスト () を隠す — リストモニターを隠す。
Scratch 3.0のリストブロックには、4個の値ブロックが存在する:
- () — そのリストの値。
- () の () 番目 — 指定した要素の値。
- () の長さ — 指定したリストに含まれる要素の数。
- () 中の () の場所 — 指定した項目がリスト中に含まれている最初の番目。
Scratch 3.0のリストブロックには、真偽ブロックが1個存在する:
- () に () が含まれる — 要素の中に、指定したテキストと同じ値を持つものがあるかどうかを判断する。
ブロック定義
- 詳細は「ブロック定義 (カテゴリ)」を参照
ブロック定義 では、ユーザーが自分でカスタムブロックを定義して使うことができる。Scratch 3.0では、このためのブロックとして2種類が用意されている。
Scratch 3.0のブロック定義カテゴリでは、次のハットブロックを使用できる。
- 定義 () —このブロックを使って、カスタムブロックを定義する。
Scratch 3.0のブロック定義カテゴリでは、次のスタックブロックを使用できる。
- () — カスタムブロック(自分で定義したブロック)。
Scratchブロックプラグイン
- 詳細は「ブロックプラグイン (3.0)」を参照
Scratchブロックプラグインを使用すると、ディスカッションフォーラムやScratch Wiki(その他のJavaScript製専用プラグインを組み込んだサイト)で、Scratchのブロックやスクリプトをそのまま表現することができる。 次に、このプラグインの使用例を示す:
@greenFlag が押されたとき::events hat 歩く 定義 歩く //定義も再現可能 x座標を (0) 、y座標を (0) にする ずっと ((-10)から(10)までの乱数)歩動かす スタンプ (1) 秒待つ //コメント
その他のプログラミング言語におけるブロック
このページまたは節には、ScratchのWebサイト、Wikipedia、またはScratch Wiki以外へのリンクがあります。
リンク先のページが安全であると保障できないため、アクセスする場合は十分に注意してください。 |
ブロックを使用するプログラミング言語としては、Scratchは最初期に登場しており、ブロックを使うというアイディアはその他の多くの言語に影響を与えているMod版Scratchには、Scratchの本家であるMIT版では今のところ採用されていない、新しいブロックが多数含まれている(MITでは、MIT App Inventorのような、ブロックを使うプログラミング言語を他にも作成している)。さらに現在では、Stencyl など、全面的にブロックを使用する言語でありながら、リアルタイムアプリケーションやオンラインゲームにも対応したプロ志向の言語も登場している。また、より幼い子供にも理解しやすい言語として開発されたScratch Jrもブロックを使ったプログラミング言語である。
注釈
- ↑ ただし、ブロックパレットではリストブロックは変数ブロックに含まれている
ブロックの種類(基本) |
動きブロック • 見た目ブロック • 音ブロック • イベントブロック • 制御ブロック • 調べるブロック • 演算ブロック • 変数ブロック |
ブロックの種類(応用) |