Scratch各ブロックの使い方(データ)

Scratchで用意されているブロックについてカテゴリーごとに簡単な使い方を説明します。

 

このページでは「データ」カテゴリーに含まれているブロックを紹介します。他のカテゴリーのブロックの使い方についてはこのページの最後にリンクを記載してありますのでそちらよりご参考にどうぞ。

 

データパレットのブロックの使い方

データパレット(カテゴリー)はScratchの中でも特殊なカテゴリーとなっており、初期は2個のボタン(変数を作る、リストを作る)が用意されています。このボタンによって変数やリストを作ることによって使えるブロックが増えていきます。

 

変数を作る

最初から用意されているボタンで新しい変数を作ることができます。変数とは”データを格納できる箱”だと思ってください。例えば、ゲームを作るときのスコアやプレイヤーネームを保持するために使用します。

 

ボタンを押すとどのような変数を作るか入力するポップアップが表示されます。

 

変数名:作りたい変数の名称を入力

すべてのスプライト用 or このスプライトのみ:変数をプロジェクト全体で保持するかスプライトで保持するか。

 

“すべてのスプライト用”か”このスプライトのみ”のどちらにするかは変数の使い方の目的から判断します。例えば、シューティングゲームのスコアならプロジェクト全体で1つのデータとなるため”すべてのスプライト用”を選びます。RPGで敵のHP(ヒットポイント)なら、敵キャラクター(スプライト)ごとにデータを保持する必要があるため”このスプライトのみ”を選びます。

 

入力が終わってOKボタンを押すと以下のブロックが追加されます。

test(作った変数)

先ほど「変数を作る」ボタンを押したときに表示されたポップアップで入力した”変数名”のブロックです。これは変数を作るごとに自動生成されますので、変数を作った数だけブロック数も増えていきます。

 

値ブロックのため、真偽ブロックやスタックブロックと組み合わせて使用します。

 

“test”を”0″にする

変数を指定の値に変更するためのブロックになります。”test”は作成した変数の中から選択することができます。また”0″は任意の数値、または数値以外に文字列も入力することができます。

 

例えば、ゲームのスタート時にスコアを初期化(0にする)ときなどに使用されます。

 

“test”を”1″ずつ変える

変数の値を少しずつ変更するときに使用するブロックになります。「”test”を”0″にする」ブロックは変数の中身に関係なく書き換えるブロックですが、この「”test”を”1″ずつ変える」ブロックは既存の値を元に変更を加えます。

 

“test”は作成した変数の中から選択することができます。また”1″は任意の数値を入力することができますが、「”test”を”0″にする」と違い文字列を入力することはできません。

 

変数”test”を表示する、変数”test”を隠す

変数の値をステージ上に表示するか非表示にするかを設定するためのブロックです。スクリプトで変更する場合はこの2つのブロックを使用しますが、ブロックを使わないで変数横のチェックボックスを操作することによって表示非表示を切り替えることもできます。

ステージの表示が多すぎると画面が見にくくなるため、表示する変数の情報は厳選するようにしましょう。

 

リストを作る

最初から用意されているボタンで新しいリストを作ることができます。リストとはプログラミングにおいて一般的に配列と呼ばれるもので、1つのリストで複数のデータを保持することができる箱になります。つまり複数の変数の塊といえます。

 

ボタンを押すとどのような変数を作るか入力するポップアップが表示されます。

リスト名:作りたいリストの名称を入力

すべてのスプライト用 or このスプライトのみ:変数をプロジェクト全体で保持するかスプライトで保持するか。

 

変数と同じく”すべてのスプライト用”か”このスプライトのみ”のどちらにするかを選択できます。

入力が終わってOKボタンを押すと以下のブロックが追加されます。

 

リストは変数を複数保持するため、データを表示させると以下のようになります。

上記の画像ではリスト名:LISTの中に3つのデータが格納されています。この3つにはそれぞれ番号がついており、「リストの1には”1番目”」、「リストの2には”2番目”」といった形でデータを保持します。このため、特定のデータを使いたい場合はリスト名と番号を指定して使用します。

 

LIST(作ったリスト)、”1″番目(”LIST”)、”LIST”の長さ

先ほど「リストを作る」ボタンを押したときに表示されたポップアップで入力した”リスト名”を元に3つの値ブロックが生成されます。1番最初の「LIST」は新しいリストを作るごとに自動生成されますので、リストを作った数だけブロック数も増えていきます。

 

値ブロックのため、変数と同じく真偽ブロックやスタックブロックと組み合わせて使用します。ただし、「LIST」ブロックはリスト全体のデータとなるため、あまり使うことがありません。

先ほども説明した通り、リストはリスト名と番号を指定して使用します。この時に使うブロックが「”1″番目(”LIST”)」となります。このブロックを使うことで、指定したリスト名の”1″番目(”1″は任意で変更可)のデータを使用することができます。

 

「”LIST”の長さ」はリストに何個のデータが格納されているかを数字で表示してくれます。データで任意の数までを抽出したいときや、乱数でデータが入力されている番号までを指定したいときなどに使用します。

“thing”を”LIST”に追加する

リストにデータを格納するためのブロックになります。”thing”には任意の文字列または数字を入力ができます。また”LIST”は作成したリストの中から選択することができます。

 

すでに選択したリストにデータが格納されている場合、1番最後にデータが追加されます。つまり上記で説明したような3番目までデータが入っているリストに追加した場合は4番目に追加されるということです。

 

リストに指定できるのは文字列や数字の他に変数を指定することもできます。

ただし、この場合格納されるのはこのスタックブロックが実行されたときの変数(test)の値になります。リスト(List)にデータを格納後、変数(test)の値を変更してもリストの中身は変わらないので気をつけましょう。

 

“1”番目を”LIST”から削除する

リストの中身を削除するためのブロックです。リストは番号で複数のデータが格納されているため、削除する場合は番号を指定してデータを削除します。

 

複数のデータが格納されている状態で末尾ではない番号、例えば3つのデータが格納されている状態で1つめのデータを削除した場合、後ろの2つは番号が繰上げ(2番→1番、3番→2番)となります。

 

“thing”を”1″番目に挿入する(”LIST”)

すでにデータが格納されているリストに対してリストの何番目にデータを挿入するかを指定して格納するためのブロックになります。既存のデータで指定番号より後ろの番号のデータはそれぞれ繰下げされます。例えば、3つデータが格納されているリストに「thingを2番目に挿入する(LIST)」ブロックを使うと、元から入っている2番目のデータが3番、3番目のデータが4番目となります。

 

注意するポイントは空白の番号を作ることはできないことです。つまり、3つのデータが入っているリストに対して5番目に挿入しようとすると4番目が存在しないためエラーとなります。スクラッチにおいてエラーは処理されないため、スタックブロックが飛ばされるような形で後続のスクリプトが実行されていきます。

 

指定する番目は数字を入力できる他に”最後”と”乱数”を指定することができます。”最後”にすると「”thing”を”LIST”に追加する」ブロックと同じ動作となります。”乱数”は既存のデータの個数+1のどこかに挿入されます。

 

“1”番目(”LIST”)を”thing”で置き換える

データの追加ではなく、データの変更をしたいときにしようするブロックになります。”1″には任意の番号、”最後”、”乱数”のどれかを選択して”thing”を任意の数字または文字列にすることによって使用することができます。

 

データが存在していない番号を指定した場合は無効化されます。またデータが全く登録されていないときの”最後”と”乱数”も同様に無効化されますので必ずデータが格納されている状態で使用します。

“LIST”に”thing”が含まれる

「”LIST”に”thing”が含まれる」ブロックは、リストの何番目でもよいので指定した値”thing”が格納されているかチェックするために使用する真偽ブロックになります。

 

真偽ブロックのため、返り値はtrueまたはfalseとなります。条件は完全一致の必要があり、例えばデータの中に”thing1″のように指定した値+αがついているようなデータが格納されていたとしても返り値はfalseとなります。

リスト”LIST”を表示する、リスト”LIST”を隠す

リストの値をステージ上に表示するか非表示にするかを設定するためのブロックです。

スクリプトで変更する場合はこの2つのブロックを使用しますが、ブロックを使わないでパレットエリアのリスト名横のチェックボックスを操作することによって表示非表示を切り替えることもできます。

ブロックの使い方カテゴリ一覧