本記事ではScratchのブロックの使い方について実例を交えてわかりやすく解説していきます。
ブロックとは、1つの処理だと考えてください。
ブロックを組み合わせて理想とするアプリをプログラムしていきます。
それぞれブロックの仕様について一覧にまとめています。
ブロックの種類と役割
各ブロックには役割に合わせて形が決まっています。それぞれのブロックの役割と形状を紹介していきます。
- ハットブロック
- C型ブロック
- 値ブロック
- 真偽ブロック
- キャップブロック
- スタックブロック
ハットブロック
ハットブロックは、処理の始まりとなるブロックです。
各スクリプトを開始するためのブロックで、ハットブロックの下に組み合わされたブロックを実行する機能を持ちます。 上の部分が丸くなっており、ハットブロックの上にはブロックを置くことができませんが、下の部分には凸がついており、下にブロックをつなげることができます。
C型ブロック
C型ブロックでは繰り返し処理を実現することができます。
C型ブロックの中に入っているブロックを特定の条件の間繰り返す特性があります。
C型ブロック(C Block)とは、アルファベットの「C」の形に似ていることもあり、C型ブロックと呼ばれていますが、他の呼び方として「ラップブロック」とも呼ばれます。
「ずっと」ブロックのみ特殊で、このブロックには処理の終わりがないため下にブロックを組み合わせることはできません。 他のC型ブロックについては下にブロックを組み合わせることができます。
値ブロック
値ブロックは楕円形の形状で、数値や文字列といった何らかの値を維持するブロックになります。
プログラミングでは「変数」と呼ばれるものです。
値ブロックは、スタックブロックのように他のブロックの上下に組み合わせることはできません。
他ブロックに組み込むことで使用することができます。 以下のように使用します。
値ブロックの中に何が入っているのか確認したい場合は、ブロックパレットの値ブロックの左にあるチェックボックスにチェックを入れると、ステージ上に値ブロックの中身が表示されます。
真偽ブロック
真偽ブロックは比較を行うことができます。横長の六角形の形状をしており、真(True)または偽(False)のどちらかの状態を表すブロックです。
真偽というのは、条件にあっている値が正しければ、真(True)で、間違っていれば偽(False)と表現されます。真偽ブロックの利用方法としてはC型ブロックに組み込む、真偽ブロックの中にさらに真偽ブロックを組み込むといった使い方があります。
真偽ブロックは、スタックブロックのように他のブロックの上下に組み合わせることはできません。
キャップブロック
キャップブロックは、スクリプトを停止するブロックです。上の部分に凹がついており、下の部分は平らなブロックになります。 何もつなげる部分がないため他のブロックをつなぐことができず、キャップブロックでスクリプトが終了となります。
スタックブロック
スタックブロックは、それぞれの命令を実行するブロックです。
長方形の形状で上の部分は凹、下の部分は凸となっており、上下とも他のブロックをつなげることができます。
ブロックの分類は9つ用意されています。
- 動き
- 見た目
- 音
- イベント
- 制御
- 調べる
- 演算
- 変数
- ブロック定義
動きブロック
動きブロックは、全部で18個のブロックが用意されています。スプライト(キャラ)を動かす処理が集まっています。
左右への移動や回転、角度などが設定できます。
スプライトが向いている向きに、指定した歩数だけ動かす | |
指定した数値だけ右回り(時計回り)にスプライトを回す | |
指定した数値だけ左回り(反時計回り)にスプライトを回す | |
指定した他のスプライトの位置まで移動する | |
ステージ上の指定したx座標、y座標までスプライトを移動する | |
指定した時間をかけて、マウスポインターや他のスプライトの位置まで移動する | |
指定した時間をかけて、指定したx座標、y座標にスプライトまで移動する | |
スプライトを指定角度の方向に向ける | |
スプライトを指定したマウスポインターや他のスプライトの方向に向ける | |
現在のスプライトのx座標から指定された数値ずつ移動する | |
ステージ上の指定したx座標にスプライトを移動する | |
現在のスプライトのy座標から指定された数値ずつ移動する | |
ステージ上の指定したy座標にスプライトを移動する | |
スプライトがステージの端に触れたとき、スプライトがやって来た方向と逆の方向を向く | |
スプライト回転方法を設定する | |
スプライトのx座標を取得 | |
スプライトのx座標を取得 | |
スプライトの向いている角度を取得 |
x座標とy座標については、はじめは分かりづらいと思います。例を挙げて使い方を説明します。
それぞれのスプライトの座標を使ってゲームの判定に使うことができます。
見た目ブロック
見た目ブロックは、全部で20個のブロックが用意されています。
見た目ブロック は、キャラや背景など作品の見た目を設定する処理が集まっています。
キャラに会話させる、キャラのコスチュームを変更させる、背景をかえる、大きさを変える、色を変えるといった内容を実装できます。
スプライト上に、指定した時間だけ入力したテキストをふきだしで表示する | |
プライト上に、入力したテキストをふきだしで表示する | |
スプライト上に、指定した時間だけ入力したテキストをふきだし(考え事)で表示する | |
プライト上に、入力したテキストをふきだし(考え事)で表示する | |
指定したコスチュームに変更する。 指定方法はコスチューム名でも番号でもよい | |
次のコスチュームに変更する | |
背景を指定した背景に変更する。 指定方法は背景名でも番号でもよい | |
次の背景に変更する。 | |
スプライトの大きさを、指定した数値だけ変更していく。 | |
スプライトの大きさを、パーセンテージで変更する。比率%のため元の大きさに依存する。 | |
見た目に関する項目を指定した値ずつ変更する | |
見た目に関する項目を指定した値に変更する | |
スプライトに適用されているすべての画像効果を消去する | |
スプライトを表示する | |
スプライトを非表示にする 非表示は見えないだけでスプライトは存在するためスプライトに適用されているプログラムは有効 | |
スプライトを最前面もしくは最背面にする | |
スプライトを指定した階層分だけ移動する | |
スプライトの現在のコスチューム番号や名前を取得 | |
選択している背景の番号や名前を取得 | |
スプライトの現在の大きさを取得 |
音ブロック
音ブロックは、全部で9個のブロックが用意されています。
音ブロック は、音に関する処理が集まっています。BGMやSEの設定が可能となります。
BGM :バックグラウンドミュージックの略、背景に流す音楽を指します。
SE :サウンドエフェクトの略。効果音を指します。ジャンプなどキャラを動かすタイミングで流すのが一般的です。
指定した音を鳴らして、音が鳴り終わるまで待ってから、次のブロックへ処理を進める | |
指定した音を鳴らしたまま、次のブロックへ処理を進める | |
スプライトやステージで再生されている音をすべて止める | |
音の効果を、指定された数量だけ変更する | |
音の効果を、指定された数値に変更する | |
音の効果を、リセットする | |
音量を、指定した数値ずつ変更する | |
音量を、指定した%の音量に変更する | |
スプライトの現在の音量を取得する |
イベントブロック
イベントブロックには、全部で8個のブロックが用意されています。
イベントブロックは、処理をどのようなイベントで開始するかを設定できます。
よく使うのが下記のブロックです。 プログラムがスタートされたタイミングで処理実行されます。
イベントブロックは制御ブロックの条件式として使用できそうですが、条件式には調べるブロックを使用するため、イベントブロックは使用できません。 ご注意ください。
緑の旗がクリックされたときに、下にあるスクリプトを実行する | |
指定したキーが押されたときに、下にあるブロックを順次実行する | |
このスプライトがクリック(もしくはタッチ)されたときに、下にあるブロックを順次実行する。 | |
背景が指定した背景になったときに、下にあるブロックを順次実行する。 | |
指定した値より指定した項目の値が大きいときに、下にあるブロックを順次実行する | |
指定したメッセージを受け取ったときに、下にあるブロックを順次実行する。 | |
指定したメッセージを全スプライトに対して送る | |
指定したメッセージをスクラッチプログラム全体へ送り、受け取った側のスクリプトが終わるまで次の処理にには進まず待つ 受け取った側のスクリプトが終わり次第下にあるブロックを順次実行する |
制御ブロック
制御ブロックには、全部で11個のブロックが用意されています。
制御ブロックは、プログラミングの根幹にあたる、反復処理や分岐処理の処理が集まっています。
プログラムの処理を指定した秒数だけ一時停止する | |
指定した回数だけ中に入れたブロックの処理を繰り返し実行する | |
ブロック内の処理を繰り返し実行する。 | |
指定した条件を満たしていれば、中に入れたブロックを実行する。 | |
指定した条件を満たしていれば「もし〇なら」の下のブロックを実行し、条件を満たしていなければ「でなければ」の下のブロックを実行する | |
指定した条件を満たすまでプログラムを一時停止する | |
指定した条件を満たすまで、中に入れたブロック処理を繰り返し実行する | |
1つのスクリプトを止める | |
クローンされたときに下のブロックを実行する【スプライトのみ】 | |
指定したスプライトのクローンを作る | |
クローンを削除する【スプライトのみ】 |
制御ブロックはプログラミングの1番大切な処理になるといっても過言ではありません。そのため、別記事にて1つ1つ例を交えながら説明したいと思います。
調べるブロック
調べるブロックには、全部で18個のブロックが用意されています。
調べるブロックは、制御ブロックの条件式として使用できる処理が集まっています。
指定した対象物に触れたらtrueを、そうでないときにfalseを返す | |
指定した色に触れたらtrueを、そうでないときにfalseを返す | |
実行するスプライトから指定した対象物までの距離の値を返す | |
指定したテキストを表示しユーザーが入力するまで処理を一時停止する | |
質問に対して入力した値を取得する | |
指定したキーが押されたらtrueを、そうでないときにfalseを返す | |
マウスキーが押されたらtrueを、そうでないときにfalseを返す | |
マウスキーが押されたらtrueを、そうでないときにfalseを返す | |
マウスのx座標を取得する | |
マウスのy座標を取得する | |
ドラッグモードを設定する。 ドラックモードONの場合、スプライトを自由にドラッグすることができる。 | |
音量の値を取得する | |
Scratchが管理しているタイマー値を返す | |
タイマーをリセットする | |
指定のスプライトやステージの指定の番号を返す | |
現在の「年」「月」「日」「曜日」「分」「秒」を返す | |
2000年1月1日午前0時0分0秒からの経過日数を返す | |
ユーザー名を返す |
演算ブロック
演算ブロックには、全部で11個のブロックが用意されています。
演算ブロックは、主に制御ブロックの条件になるブロックで四則演算や、比較を行うことができます。
指定した2つの数値を足し算した結果を返す | |
指定した2つの数値を引き算した結果を返す | |
指定した2つの数値をかけ算した結果を返す | |
指定した2つの数値を割り算した結果を返す | |
指定した2つ数値の範囲でランダムな数値を返す | |
左の値が右の値より小さいときにtrueを、そうでないときにfalseを返す | |
左の値が右の値より大きいにtrueを、そうでないときにfalseを返す | |
左の値と右の値が同じときにtrueを、そうでないときにfalseを返す | |
指定した2つの条件で両方とも満たすときにtrueを、そうでないときにfalseを返す | |
指定した2つの条件でどちらか一方を満たすときにtrueを、そうでないときにfalseを返す | |
指定した条件に満たないときにtrueを、条件を満たしているときにfalseを返す | |
2つの値を連結して、くっつけた値を返す | |
指定した文字列から指定した番号の文字を返す | |
指定した文字列の文字数を返す | |
指定した文字列に指定した文字列が含まれるときにtrueを、含まれていないときにfalseを返す | |
1つめの値を2つめの値で割ったときの余りを返す | |
指定した数値を四捨五入した値を返す | |
指定した数値の絶対値を返す。他にはsinなど指定した数学関数で演算した値を返す |
変数ブロック
変数
変数ってなに?
変数は、プログラミングで使う「名前のついた箱」みたいなものです。この箱にはいろんなデータ(情報)を入れることができます。
変数ブロックには、全部で5個のブロックが用意されています。
変数ブロックは単体で使うことは出来ないので、他のブロックと組み合わせて使います。
変数の値を返す | |
指定した変数に指定した値を入れる | |
指定した変数の値に指定した値を加える(+なら増、-なら減) | |
指定した変数の値を表示する | |
指定した変数の値を非表示にする |
変数ブロックの作り方
変数ブロックを作るには、『変数を作る』から作成します。任意の名前を設定してください。
『すべてのスプライト用』と『このスプライトのみ』とありますが、『すべてのスプライト用』でOKです。
違いはグローバル変数とローカル変数なのですが、詳細についてはこちらを読んでみてください。
リスト
変数ブロックには変数のほかにリストというものが用意されています。
リストとは、変数をひとまとめにしたものです。
特徴は以下の通りです。
・データを追加したり減らしたりできる
・データに順序を持たせることができる
・必要なデータのみ参照できる
変数ブロックのリストには、全部で12個のブロックが用意されています。
リストの値を返す | |
指定したリストに指定した値を追加する | |
指定したリストから指定した番号の値を削除する | |
指定したリストのすべての値を削除する | |
指定したリストの指定した番目に指定した値を挿入する(追加) | |
指定したリストの指定した番目に指定した値を置き換える(変更) | |
指定したリストの指定した番号の値を返す | |
指定したリストから指定した値の番号を返す | |
指定したリストに含まれている要素の数を返す | |
指定したリストから指定した値が存在するか調べて真偽の値(true、false)を返す | |
指定したリストを表示する | |
指定したリストを隠す |
ブロック定義ブロック
ブロック定義を利用することで、よく使う処理をいつでも使える状態にすることができます。
ブロック定義を行うことによってプログラムを簡素化、修正をしやすくメリットがあります。
例えば次の処理には3か所の場所で同じ処理が行われています。
ブロック定義を使用すると以下のようになります。
この規模のプログラムの場合、あまり恩恵を感じないと思いますが大規模なプロブラムになるとブロック定義の考え方は非常に重要になってきます。
定義ブロックの作り方については別記事で詳しく説明したいと思います。
さいごに
スクラッチは、“ プログラミング”と聞いて「難しそう……」と躊躇してしまっていた方にこそ、体験してほしいプログラミング言語です。
プログラミング教室
プログラミング教室を探してみてはいかがですか?
オンライン家庭教師
スクラッチを使ったプログラミングに興味を持っているお子さまのために、オンラインレッスンを提供しています。レッスンはビデオチャットを利用し、お子さま一人ひとりのレベルに合わせて丁寧に指導いたします。
- 対象:小学生(特にスクラッチ初心者~中級者)
- 内容:スクラッチの基本操作からゲーム作成まで幅広くカバー
- 時間:土・日曜日のご都合の良い時間に調整
- 形式:オンライン(ココナラ内のビデオチャット)
お子さまが楽しみながら学べる環境を提供しています。興味がある方はぜひ以下のリンクから詳細をご覧ください。
お子さまの創造力とプログラミングスキルを一緒に育んでいきましょう!お申し込みをお待ちしています。
コメント