【Scratch解説】ブロック定義の使い方・変数ブロックの仕組み

ブロック定義とは

ブロック定義を使えば、オリジナルのブロックを作れます。よく使う処理を1つのブロックにまとめて定義しておくことで、コードが見やすくなり、管理もしやすくなります

例えば「キャラクターの動きを右方向に10歩動かす」「キャラクターの動きを左方向に10歩動かす」といった処理をまとめるときに使用します。

キャラクターを◯◯方向に動かすという形でブロック定義を作成し、◯◯の中に必要な数値だけを入れる形で処理をまとめることができます。具体的な手順を確認しましょう。

ブロックを作る

まずブロックの名前を登録し、その後ブロックに3種類の中から定義を追加できます。引数とは、ブロックの中で使う値を渡すものだと考えてください。

例えば、先ほど説明した「キャラクターを◯◯方向に動かす」の◯◯のブロックに渡す値を引数と言います。

ブロック定義の中身
  • 引数を追加(数値またはテキスト)
    • 数値や文字列を入れるときに使います。
  • 引数を追加(真偽値)
    • 真偽値とはスイッチのONかOFFのようなもので、真ならON, 偽ならOFFで表します。
    • 例えば、クイズの処理というブロックを作り、真偽値としてクイズの正解・不正解の値を引数として入れられます。
  • ラベルのテキストを追加
    • 作成したブロックを説明する際の補足として利用します。
      • 例えば「キャラクターを◯◯」のようにブロック名と引数だけにすると意味が分かりにくいため、ラベルテキストを追加し、「キャラクターを◯◯方向に動かす」のようにします。

「画面を再描画せずに実行する」にチェックを入れると、徐々にスプライトが描画されて表示されます。演出にこだわりたいなどの希望がなければ、このチェックは入れなくても問題ありません。

作成したブロックを右クリックすルト、一度作ったブロックを編集できます。もし名前や引数などを変えたい場合は右クリックで再度編集をしましょう!

ブロック定義を試す

実際にブロック定義を使って一つプログラムを作ってみましょう。

「キャラクターを◯◯方向に動かす」ブロック定義を作成する

ここに、下記を定義したブロックがあります。

  • 右方向に動かす
  • 左方向に動かす
  • 上方向に動かす
  • 下方向に動かす

中身を見てみると、それぞれ「◯◯度に向ける」の数値が違うだけで、それ以外は同じです。これでもプログラムは動きますが、ブロックが増えて見づらいですよね。

ブロック定義を作成すれば、見やすいプログラムを作ることができます。

それぞれ向きを設定して作成したブロック

まず最初に、ブロック定義を作りましょう。左下の「ブロック定義」から「ブロックを作る」を選択します。

ブロック定義の場所

ブロックの定義の名前を入力する必要があるので、「キャラクターを」と入れます。

次に引数(数値・文字列)を追加します。この引数が実際のブロックの方向を定義する値になります。引数には分かりやすく、「動かす方向の数値」と入れましょう。

引数を追加

最後に、ラベルのテキストを追加します。「方向に動かす」と入れます。

ラベルのテキストを追加

これでブロックの定義は完成です。

ブロック定義の中身を作成する

続いて、定義したブロックの中身を作成します。すでに作成されていた「右方向に動かす」のブロックをそのまま持ってきましょう。

引数を入れる

今のままだと一つの方向にしか動かないので、定義の動かす方向の数値の部分をクリックし、ドラッグして「90度に向ける」の部分に入れます。そうすることで、引数を利用して「動かす方向の数値」度に向ける、という形にできます。

引数を入れる

最後は、もともとあった「角矢印キーが押されたとき」の部分に「ブロック定義からキャラクターを動かす」のを組み合わせ、数値を入力して完成です!

ブロック定義を活用する前後で、プログラムの見やすさが大きく変わっているのがわかるかと思います!

before after
ブロック定義を使う前のbefore ブロック定義を使った完成図

変数とは

変数とは、簡単に言うと、コンピューターに「値を一時的に保存しておくための箱」のようなものです。
変数についての説明図 数値や文字列などの値をこの箱に入れて、箱から値を入れたり出したりして使用します。
変数は自由に名前をつけて作ることができ、「点数」「ライフ」などのゲームの進行状況を保存したり、計算の途中の値を一時的に覚えておくために使ったりします。
良いゲームやシステムを作るためには、この変数を使った考え方が必須となるので、ぜひこの記事でマスターしてください!

変数ブロックについて

Scratchではオレンジ色のブロックが変数に割り当てられています。
変数ブロック群 この変数ブロックのデフォルトで用意されている機能は全部で6種類あります。
一つずつ解説をしていきます。

変数を作る

このブロックでは、自分で変数を作ることができます。
変数を作るブロック 変数には好きな名前をつけられるので、「得点」や「ライフ」などわかりやすい名前をつけましょう。
また、すべてのスプライト用 もしくは このスプライトのみを選択することができますが、これは変数を共通で使うかどうかの設定です。
例えば、敵のモンスターそれぞれに固有のライフにしたい時(敵によって強さが変わる場合など)、このスプライトのみを選択します。
逆に、全体で共通して変数を触りたい時はすべてのスプライト用を選択しましょう。

変数

チェックボックスにチェックを入れるとステージの左上に変数が表示されるようになります。
変数ブロック プレイヤーに変数の値を見せたい場合はチェックを入れましょう。
また、他のブロックでこの変数を条件に入れたい場合に使用します。
しゃべらせるためにこの変数ブロックを入れて使ったり、計算するためにこのブロック入れて使ったりします。

変数を0にする

このブロックを使うと、変数が0(決められた値)になります。
変数を0にするブロック 0の部分を変えて、文字列を入れたりできるので、一番最初に呼び出して初期化する時に使用します。
例えば、物語の主人公の名前を決めたり、クイズゲームなどで最初の点数を0からにしておくといった使い方ができます。

変数を1ずつ変える

現在の変数の値を一定の数ずつ増やしたり減らしたりできます。
変数を1ずつ変えるブロック これを使うことで、キャラクターが敵にやられるたびに1ずつ減らしたり、敵を倒した時に1ずつ増やして得点を増やしたりできます。
また、この1ずつを2や3と増やす量を変えることもできるので、強い敵を倒した時の得点を変えたりなどの調整ができます。

変数を表示する

このブロックを使うと、変数を画面上に表示できます。
変数を表示するブロック ゲームオーバーやゲームクリアの際の、最終得点表示に使うなど、特定の場面で変数を表示させたいときに利用しましょう!

変数を隠す

変数を表示するの逆で、変数を画面上から隠します。
変数を隠すブロック ステージごとに点数を表示したり、隠したりといった細かい制御を行い時などに利用しましょう!

その他のカテゴリブロックの解説

Scratchブロック解説-動きブロック-

Re:ProS メディア

Scratchブロック解説-動きブロック-

Scratchブロック解説-見た目ブロック-

Re:ProS メディア

Scratchブロック解説-見た目ブロック-

Scratchブロック解説-音ブロック-

Re:ProS メディア

Scratchブロック解説-音ブロック-

Scratchブロック解説-イベントブロック-

Re:ProS メディア

Scratchブロック解説-イベントブロック-

Scratchブロック解説-制御ブロック-

Re:ProS メディア

Scratchブロック解説-制御ブロック-

Scratchブロック解説-調べるブロック-

Re:ProS メディア

Scratchブロック解説-調べるブロック-

Scratchブロック解説-演算ブロック-

Re:ProS メディア

Scratchブロック解説-演算ブロック-

Scratchブロック解説-リストブロック-

Re:ProS メディア

Scratchブロック解説-リストブロック-

投稿者について

渡辺 優樹

愛知県豊川市出身
名古屋大学大学院情報学研究科卒
プライム上場のエイチームグループにて五年間開発業務に従事
現職の株式会社レクトを設立し、エンジニアとして講師&開発業務を担当
豊川市を盛り上げます!

経歴・資格について

  • 高等学校教諭一種免許状「情報」 免許保有
  • 基本情報技術者 資格保有

この投稿者の記事を読む