Scratchを使い始めてプログラミングに慣れてきたという脱初心者の方も多くいらっしゃるのではないでしょうか。
しかし、下の方に「ブロック定義」と言う何やら不思議なブロックがありますねぇ。
今回はこれの基本的な使い方をご紹介します。
ブロック定義とはプログラミング用語を使って説明すると、サブルーチンプログラムのことです。
サブルーチンプログラムは慣れるまで扱いがとても難しく、引数などしっかりと使い方を覚えないとうまく動きません。
もっと簡単な言葉で説明すると、くりかえし使われるブロックの組み合わせに名前をつけて一つのブロックにまとめてしまうことをブロック定義と言います。
「ずっと」や「〜回繰り返す」を使えばいいではないかと思う方もいるかもしれませんが、ここで言う「くりかえし使われるブロックの組み合わせ」とは、プログラムのあちらこちらで同じ組み合わせがあると言う意味です。
ですから、「ずっと」や「〜回繰り返す」を使うことができないのです。
まず下のイラストのようなプログラムがあったとします。
上のプログラムは黄色のブロックで分岐をして、その後のブロックをみてみると緑色のブロックと黒のブロックが連続している部分が二箇所にあります。
これは「ずっと」や「〜回繰り返す」でまとめることはできないのはわかりますね。
よってここで登場するのが「ブロック定義」です。
緑と黒のブロックを一つの大きなオレンジのブロックに変換します。これをブロック定義と呼んでいるのです。
こうすれば元のプログラムを少ないブロック数で表すことができるようになりますね。
今回は二箇所にしか同じ組み合わせのものはありませんが、プログラムによっては十箇所も同じ組み合わせのブロックがあるかもしれません。こういう時に大活躍してくれます!
ブロック定義は使わなくてもいいものですが、使えるとプログラムを楽に作れる便利な物なのです。
Scratchのブロック定義から「ブロックを作る」をクリックしてください。
下のような画面が出てくると思います。
ここで、ブロック名を打ち込んでOKをクリックしてください。
そうするとスクリプトエリアにヘンテコなブロックが挿入されました。
試しにこのブロックを使って簡単なプログラムを作ってみましょう。
この例は簡単すぎてブロック定義を使うメリットが見当たりませんが、このように使います。
「スプライトが押された時」に下の「アイウエオ」を実行します。「アイウエオ」は何かというと、上で定義している「どこかの場所に行って、こんにちはと2秒言う」というプログラムです。
「緑はたが押された時」も「上矢印が押された時」も同様にプログラムが動きます。
同じような使い方をした例を以前記事で紹介しました。
この場合は定義がとても長くブロック定義を使わないと長すぎてプログラムがとても見辛くなったため使用しました。
興味がある人はこちらからみてみて下さい。
もう一度この画面をご覧ください。
「引数」と言う文字が下にあることにお気づきでしょうか。
「いんすう」と読んだ方、残念間違いで〜す^^
これは「ひきすう」と読みます。引き渡しをする数という意味でブロック定義の中で作られたプログラムとメインのプログラムの橋渡しをする大切な数になります。
この「引数」をマスターできるとプログラマーとしても少しかっこいいですよ!
まず最初に「引数を追加」を押して下のように2つ作って下さい。
OKを押すと下のようにブロックが出現しますね。
定義のブロックの「A」「B」の楕円をドラッグすると上の写真の右下のように「A」「B」を取り出すことができます。
この二つは変数とほぼ同じ扱いをすることができ、基本的にブロック定義の中でしか使わないことに注意して下さい。
では、サンプルプログラムをご覧ください。
このプログラムを作動させて、上矢印キーを何回か押すと下のように動きます。
解説をします。
下のイラストを見れば一発でわかるのでご覧ください。
「A」「B」はブロック定義の中で使用する物なので、「A」「B」にメインのプログラムから変数を引き渡さないといけません。
引き渡している部分が下のブロックです。
これが「A」と「B」に「x座標」と「y座標」を引き渡しているということになります。
ブロック定義は難しかったですか?
同じ組み合わせのブロックたちを一つにまとめると考えると理解は容易いかと思います。
しかし、引数というモンスターもいるので要注意です。引数の使い方を間違えると全くプログラムが動かなくなってしまうので取り扱いには気をつけて下さい。
またいつか引数を使った面白い作品を紹介します!
[…] Scratch3.0ブロック定義の使い方 […]