Scratchにはたくさんのブロックが用意されています。
使ったことがあるブロック、見たことすらないブロック、色々あると思いますが、全て覚えなくては!と焦る必要は全くありません。
一気に暗記したとしてもきっと少したったら忘れてしまいますし、作っていく中で覚えた実践的な知識には勝てないでしょう。本講座では使用頻度が高いブロックを優先的に使っていきますのでご安心を。
かといって何も意識せずにブロックを使っていると少しもったいないです。というのも「ある1つのポイント」をおさえているだけで理解の定着がまるで違うのです。
それはブロックがどのように「分類」されているかです。
「あーー、確かにブロックは全て”色”で分類されていますよね。」
確かにそれは事実なのですが、今回注目すべきは「色」ではないんです。少し着眼点をずらしてみましょう。
それはブロックの「形」です。
ブロックの形
「③分岐編」でもちょこっと触れましたが、Scratchにおいてブロックの形というのは結構重要です。
何でもかんでも組み合わせていいわけではありませんし、各ブロックの種類で持つ特徴がそれぞれあります。
ブロックの種類で大きくグループ分けすると以下の2つに分けられます。
- 値ブロック・・・ブロックの中に値を持つブロック。単体で使用することはない。
- 処理ブロック・・・スプライトや背景などに処理を命令するためのブロック。
それではこの2種類のブロックの特徴を詳しく見ていきましょう。
値ブロック
「ブロックの中に値を持つブロック」と定義しました。なんのこっちゃと言いたくなりますが、要はこの2種類のブロックを指します。
左のような「丸ブロック」と右のような「六角形ブロック」です。六角形ブロックは見覚えがあるかと思います。「③分岐編」で少し説明したあの六角形ブロックです。この2つが値ブロックに分類されます。それぞれどのような特徴があるのでしょう。
六角形ブロック
真偽値(trueまたはfalseのどちらか)を持つブロック。後ろに?をつけることでYes,Noで答えることができます。Yesがtrue、Noがfalseでした。
主に条件式としてオレンジ色の制御ブロックに用いられます。
以前も説明しましたが六角形ブロックをクリックすることでそのブロックが今持っている真偽値を確認することができるので色々な六角形ブロックで試してみてください。
丸ブロック
六角形ブロックはtrueとfalseの2通りしか持ちませんでしたが、丸ブロックは数字や文字などほぼ全ての値を持つことができるブロックです。
使う場面も制御ブロックに限らず色々な場面で使用できます。そのためかなり応用が効くブロックになっています。
六角形ブロック同様、Scratchからすでに多くの丸ブロックが用意されています。以下はその一部です。
丸ブロックも六角形ブロック同様クリックすることでその中にどんな値が入っているか確認することができます。
これらの丸ブロックをドラッグ&ドロップしてきてクリックし、それぞれどのような値が入っているか確認してみましょう!
「大きさ」「向き」ブロックなどはそのスプライトの大きさ、向きをそのまま格納していることはわかると思います。中段もなんとなく理解できると思いますが問題は下の2つです。
- 「1から10までの乱数」ブロック・・・入力した範囲の数字をランダムで格納します。ブロックを押すごとに数字が変わっていきます。連続で押してみてください。
- 「変数」ブロック・・・自分専用の丸ブロックを作れる機能。変数編でまた詳しく解説します。今はそんな機能があるんだな程度で大丈夫です。
この2つはゲーム作りにおいて必須のブロックになりますので個別に紹介させていただきました。一気に覚えなくて大丈夫です、またこのブロックが登場した時に改めて説明します。
中に値を持つ?
「ブロックの中に値を持つブロック」とさらっと説明しましたが、多くの人がなかなか理解しずらい部分ではあると思います。この「中に値を持つ」という考え方はブロックを箱に置き換えるとわかりやすいです。下の図は「現在の年」ブロックを箱で表したイメージ図です。
それぞれ箱(ブロック)には値が入っていてクリックすることでフタを開けて中身を確認することができます。丸ブロックは基本なんでも入りますが、六角形ブロックは少し変わった箱でtrueとfalseしか入れることはできません。
と言われた方がイメージしやすいでしょうか。
使用方法
先ほど値ブロックは単体で使用することはないといいました。値ブロックはブロックの穴にはめ込んで初めて意味をなします。「はたが押されたとき」ブロックの下に組み合わせるとかそういうことはできません。
そして最も大事な約束が、値ブロックは形に合った穴にしかはまらないということです。丸ブロックなら丸い穴、六角形ブロックなら六角形の穴にしかそれぞれはまりません。こういうわかりやすい部分はScratchのメリットの1つですね。
下の2つのブロックで試してみましょう。
試してみたらわかると思いますが「大きさ」ブロックを「90度に向ける」ブロックの上下にくっつけることはやはりできません。しかし、ちょうど「90」の部分が丸くなっているのがわかるでしょうか。こういう丸くなっている部分は全て丸ブロックがはまるようになっています。逆にこういう丸い穴に六角形ブロックははまりません。
それでは早速はめていきましょう。
実行するのに「はたが押されたとき」ブロックを上につけました。無事はめられましたが「大きさ度に向ける」というわけわからんブロックが出来上がってしまいました。とりあえず実行してみましょう。
もともと「90」だった向きが「100」に変わりました!
大きさという箱には最初「100」という数値が入っていました。つまり「大きさ度に向ける」は「大きさ」の部分がそのまま「100」に変わって「100度に向ける」になっていたのです。
値ブロックははめて使う。覚えておきましょう。
最後にブロックパレットの丸ブロック横のチェックボックスにチェックするとステージ左上にその値が表示されます。合わせて覚えておきましょう。
処理ブロック
「スプライトや背景などに処理を命令するためのブロック」と定義しました。一応定義はしていますが以下の定義が一番わかりやすいかと。
“処理ブロックは値ブロック以外のブロックである。“
圧倒的わかりやすさ。
つまり、丸いブロック六角形のブロック以外のブロックを指しているわけです。
そんな処理ブロックにも大きく分けて3つグループ分けができます。値ブロックでは「丸」や「六角形」など全体の形でグループ分けしていましたが処理ブロックは上部分と下部分に注目してください。
左から
- 「通常ブロック」・・・上と下どちらにもブロックを取り付けられる。処理ブロックのほとんどがこれにあたる。
- 「開始ブロック」・・・下部分にしかブロックを取り付けられない。必然的にスクリプトの一番上に取り付けられることになる。
- 「終了ブロック」・・・上部分にしかブロックを取り付けられない。主に処理を終了させたり、削除したりする時に使われる。
通常ブロック
「処理ブロックのほとんどがこれにあたる」と説明しましたがScratchのブロックはほとんどこれにあたりますよね。ここで具体的にブロックを紹介していたらきりがないので今回は割愛します。わかりずらい特殊な通常ブロックなどはおいおい解説していくことにしましょう。
共通して言えることは上下どちらにもブロックを組み合すことが可能ということ。もちろん分岐ブロックもこれにあたります。
開始ブロック
下部分にのみブロックを取り付けられる特殊なブロックです。基本的にスクリプトはこの開始ブロックを上部につけることになります。
開始ブロックは以下のブロックが挙げられます。
一部解説しましょう。
- 「はたが押されたとき」ブロック・・・おなじみ。ステージの上にある緑のはたを押したときの処理を下に組み合わせていきます。
- 「スペースキーが押されたとき」ブロック・・・各キーが押されたときの処理を下に組み合わせていきます。スペースの部分は変更可能です。キーを押し始めた一回だけ認識するだけで、キーを押し続けたとしても認識はされません。
- 「メッセージ1を受け取ったとき」ブロック・・・各メッセージを受け取ったときの処理を下に組み合わせていきます。メッセージ1の部分は変更可能です。メッセージについてはメッセージ編で詳しく解説します。
- 「クローンされたとき」ブロック・・・クローンに対する処理を下に組み合わせていきます。クローンについてはクローン編で詳しく解説します。
③分岐編でも説明しましたがこれら全て「もし〜なら」で置き換えることができるのでした(もう1つの分岐ブロック)。全てイベントに反応するようになっていて、イベント発生時どのような処理をするかその下に記述していきます。
終了ブロック
上部分にのみブロックを取り付けられる特殊なブロックです。数としては比較的少なめです。
終了ブロックは以下の3つのブロックが挙げられます。
この中で処理を中断するための「すべてを止める」ブロックに注目してみましょう。
すべてを止めるという部分をクリックするとドロップダウンが表示されます。
- 「すべてを止める」・・・このブロックが実行されたときすべての処理が中断されます。緑のはたの右隣の赤丸ボタンを押したのと同じ状況になります。
- 「このスクリプトを止める」・・・このブロックがくっついているスクリプトのみ中断します。
- 「スプライトの他のスクリプトを止める」・・・このブロックがくっついているスクリプト以外のスクリプトを中断します。
ゲームオーバーなどプログラムを止めたい時には必須のブロックです。
使用方法
値ブロックは穴にはめるように使用しましたが、処理ブロックは上下に組み合わせるようにしようします。
まあScratchは仕様上どのブロックでもくっつけられる場合にしかくっつきませんからご安心ください。
意識せず直感的に操作できる安定のScratchクオリティですね。
私たちは今までスクリプトを作るとき一番上に「はたが押されたとき」ブロックを組み合わせて、画面右上のはたを押して実行していました。ですがスクリプトはただ単にクリックすることでも実行できます。先ほどの「大きさ度に向ける」スクリプトなんかは短かったのでクリックするだけでよかったですね。
しかし、これはエディター(今開いている開発画面)にいる時にだけ使える特別な実行方法でその他の場面では実行できません。なので基本的にはスクリプトの上には「はたが押されたとき」ブロックのような「開始ブロック」をつけるようにしましょう。この方法はちょっと動きを確認したい時などに使います。
最後に
ここまでお疲れ様でした。
今回は多数存在するブロックを形に分けて解説していきました。これらを意識すれば一人でゲームを作る時でもより論理的にコーディングができますし、ブロックの機能の理解も早くなるかと思います。Scratchはブロックを色で分類していますが、それは見つけやすくするためであって「形」での分類はそれを超える効果を持つと私は考えています。
今回でかなりブロックに対する全体像はつかめたんじゃないかと思います。ブロックを見てなんかわかりそうだなと思うブロックは積極的にドラッグ&ドロップで持ってきてクリックしてみることをオススメします。
今回出てきた用語「値ブロック」「処理ブロック」「丸ブロック」「六角形ブロック」「通常ブロック」「開始ブロック」「終了ブロック」は公式の用語ではありません。わかりやすいようにこちらで勝手に定義したものです。ご注意いただきますようお願いします。
それではScratch3.0入門講座-⑤ブロックの形編-はこれで終わりになります。ありがとうございました。
コメント
scratchの本を探していましたが、今ひとつシックリしなかったのです。
本記事に出会い楽しみに拝見しております。
一つお尋ねしますが「【完全版】Scratch3.0入門講座-④繰り返しブロックの形編-」は、インターネットにと発表しないのでしょうか?
ありましたら拝見することができるでしょうか?
閲覧、並びにコメントいただきありがとうございます。大変励みになる言葉ありがとうございます!
私事ではありますが本業の方が忙しくなり、正直なところブログの停止状態が続いております。
ただ、確かに④繰り返し編は執筆中にあります。良かったらTwitterで随時更新通知を致しますので、フォローお願いします!
https://mobile.twitter.com/proative211