目次
Scratchブロック解説 変数ブロック・ブロック定義について
変数とは
変数とは、簡単に言うと、コンピューターに「値を一時的に保存しておくための箱」のようなものです。
数値や文字列などの値をこの箱に入れて、箱から値を入れたり出したりして使用します。
変数は自由に名前をつけて作ることができ、「点数」「ライフ」などのゲームの進行状況を保存したり、計算の途中の値を一時的に覚えておくために使ったりします。
良いゲームやシステムを作るためには、この変数を使った考え方が必須となるので、ぜひこの記事でマスターしてください!
変数ブロックについて
Scratchではオレンジ色のブロックが変数に割り当てられています。
この変数ブロックのデフォルトで用意されている機能は全部で6種類あります。
一つずつ解説をしていきます。
変数を作る
このブロックでは、自分で変数を作ることができます。
変数には好きな名前をつけられるので、「得点」や「ライフ」などわかりやすい名前をつけましょう。
また、すべてのスプライト用 もしくは このスプライトのみを選択することができますが、これは変数を共通で使うかどうかの設定です。
例えば、敵のモンスターそれぞれに固有のライフにしたい時(敵によって強さが変わる場合など)、このスプライトのみを選択します。
逆に、全体で共通して変数を触りたい時はすべてのスプライト用を選択しましょう。
変数
チェックボックスにチェックを入れるとステージの左上に変数が表示されるようになります。
プレイヤーに変数の値を見せたい場合はチェックを入れましょう。
また、他のブロックでこの変数を条件に入れたい場合に使用します。
しゃべらせるためにこの変数ブロックを入れて使ったり、計算するためにこのブロック入れて使ったりします。
変数を0にする
このブロックを使うと、変数が0(決められた値)になります。
0の部分を変えて、文字列を入れたりできるので、一番最初に呼び出して初期化する時に使用します。
例えば、物語の主人公の名前を決めたり、クイズゲームなどで最初の点数を0からにしておくといった使い方ができます。
変数を1ずつ変える
現在の変数の値を一定の数ずつ増やしたり減らしたりできます。
これを使うことで、キャラクターが敵にやられるたびに1ずつ減らしたり、敵を倒した時に1ずつ増やして得点を増やしたりできます。
また、この1ずつを2や3と増やす量を変えることもできるので、強い敵を倒した時の得点を変えたりなどの調整ができます。
変数を表示する
このブロックを使うと、変数を画面上に表示できます。
ゲームオーバーやゲームクリアの際の、最終得点表示に使うなど、特定の場面で変数を表示させたいときに利用しましょう!
変数を隠す
変数を表示するの逆で、変数を画面上から隠します。
ステージごとに点数を表示したり、隠したりといった細かい制御を行い時などに利用しましょう!
ブロック定義とは
ブロック定義を使うことで、オリジナルのブロックを作ることができます。
よく使う処理を1つのブロックにまとめて定義しておくことで、コードを見やすくしたり、管理がしやすくなったりします。
例えば、キャラクターの動きを右方向に10歩動かす、キャラクターの動きを左方向に10歩動かすみたいな処理をまとめるときに使用します。
この左右どちらかに動かすブロックの中身は、実際には90度に向ける、-90度に向けるのこの90か-90しか使うブロックは変わりません。
これをキャラクターを◯◯方向に動かすというような形でブロックを作成し、◯◯の中に、必要な数値だけを入れて処理をまとめるような形です。
ブロックを作る
ブロックの名前をまず登録し、その後ブロックに3種類の中から定義を追加できます。
引数というのは、ブロックの中で使う値を渡すものだと考えてください。
例えば、先ほど説明したキャラクターを◯◯方向に動かすのこの◯◯のブロックに渡す値を引数と言います。
-
引数を追加(数値またはテキスト)
- 数値や文字列を入れるときにこちらを使いましょう。
- 引数を追加(真偽値)
- 真偽値というのは、スイッチのONかOFFのようなもので、真ならON, 偽ならOFFで表します。
- 例えば、クイズの処理というブロックを作って、真偽値としてクイズの正解・不正解だったかどうかの値を引数として入れたりします。
- ラベルのテキストを追加
- 作成したブロックを説明する際の補足として利用します。
- 例えば、キャラクターを◯◯ のように、ブロック名と引数だけでは意味が分かりづらいので、ラベルテキストを追加し、キャラクターを◯◯「方向に動かす」のようにします。
画面を再描画せずに実行するにチェックを入れると、徐々にスプライトが描画されて表示がされます。
演出にちょっとこだわりたいなどのようなことがなければ、基本的にはこのチェックは入れなくても問題ないです。
作成したブロックを右クリックすることで一度作ったブロックを編集することができます。
もし名前や引数などを変えたい場合は右クリックで再度編集をしましょう!
ブロック定義を試す
実際にブロック定義を駆使して一つプログラムを作ってみましょう。
キャラクターを◯◯方向に動かす ブロック定義を作成する
ここに、それぞれ右方向に動かす、左方向に動かす、上方向に動かす、下方向に動かすを定義したブロックがあります。
この中身を見てみると、それぞれ◯◯度に向けるの数値が違うだけで、それ以外の中身は同じです。
これでもプログラムは動きますが、ブロックが増えて見づらいですよね。
これをブロック定義を作成することで、みやすいプログラムを作成することができます。
まず最初に、ブロック定義を作りましょう。 左下のブロック定義からブロックを作るを選択します。
ブロックを作るを選択すると、ブロックの定義の名前を入力する必要があるので、「キャラクターを」と入れます。
次に引数(数値・文字列)を追加します。この引数が実際のブロックの方向を定義する引数になります。
引数には分かりやすく、動かす方向の数値と入れましょう。
最後に、ラベルのテキストを追加します。「の方向に動かす」と入れます。
これでブロックの定義は完成です。
ブロック定義の中身を作成する
続いて、定義したブロックの中身を作成します。
すでに作成されていた、右方向に動かすのブロックをそのまま持ってきましょう。
今のままだと、一つの方向にしか動かないので、定義の動かす方向の数値の部分をクリックし、ドラッグして90度に向けるの部分に入れます。
そうすることで、引数を利用して「動かす方向の数値」度に向けるというようにできます。
最後は、もともとあった角矢印キーが押されたときの部分にブロック定義からキャラクターを動かすというのができているので、それをそれぞれ入れて
数値を入力して完成です!
前後で、プログラムの見やすさが大きく変わっているのがわかるかと思います!
before | after |
---|---|