Scratch(スクラッチ)のプログラム
前の記事で,Scratchではブロックを重ねることでプログラムを作っていました。教育用プログラムということもあり,児童でもわかりやすくするため,利用するプロックには言葉でどういった動きをするかが書かれ,その言葉通りに動きます。また,ブロックの中には項目を選択したり,数値やテキストを入力したりできるものもあります。以下に左メニューの項目ごとのブロックの説明や,サンプルなどを記します。
動き
スプライト(画面に表示されているネコのキャラクターなど)に動きを与えます。「x座標」は横の位置,「y座標」は縦の位置のことをいい,はじめにネコが表示されている位置が基準で数値としては0になり,x座標として右方向がプラス,左方向がマイナス,y座標として上方向がプラス,下方向がマイナスになります。また,時計と同じように一番上が基準の0で,右まわりで正の値に合わせて回転します(0~360度)。
見た目
スプライトにセリフを言わせたり,コスチュームの変更や,大きさや色,表示/非表示の切り替え,背景の切り替えや移動もできます。また,スプライトのコスチュームや大きさ,どの背景になっているかを取得できるブロックがあります。
音
音を鳴らすためのブロックで,音の大きさや高さ,音量の変更など,これらのブロックを使って制御できます。
イベント
「~が押されたとき」や「~のとき」といった,プログラムを動かすきっかけ(イベント)を設定するブロックになります。いろいろ複雑な動きをさせたい場合に重要になるのは,この中の「メッセージ」関連のブロックです。
例えばネコを2匹設置したとして,ネコ1には「ネコ2を10歩動かす」といったプログラムは設定できません。そのような時は,ネコ1に「メッセージ1を送る」を設定し,ネコ2に「メッセージ1を受け取ったとき」を設定すれば,ネコ2のプログラムの実行ができます。以下はサンプルです。
プロジェクトの共有ページ
左下のネコをクリックすると,右上のネコが「こんにちは」と言います。プログラムとして,左下のネコに「このスプライトがおされたとき」→「[メッセージ1]を送る」というブロックを設置し,右上のネコには「[メッセージ1]を受け取った時」→「(こんにちは!)と言う」というブロックを設置しています。
メッセージの種類はブロックの「メッセージ1▽」を押すと新しいメッセージの作成や,これまで作ったメッセージの選択ができます。メッセージのやり取りでより複雑な動きが実現できるでしょう。
制御
制御のメニューは「もし~なら」といった条件や,「~回繰り返す」といったくり返し,「~秒待つ」や「すべてを止める」といった動作を制御するブロックになります。また,「クローンされたとき」,「[自分自身]のクローンを作る」,「このクローンを削除する」というクローン関係のブロックもこちらのメニューに含まれます。クローンとはスプライトの複製を作ることです。例えばシューティングゲームを作る場合,「スペースキーを押してタマを発射する」という動作を作りたいとき,うつタマを1つずつ用意するのでは,用意した分だけしか発射できません。ですのでタマ用のスプライトを用意し,そのクローンをスペースキーを押すごとに作って発射するようにすればよいのです。以下はサンプルです。
プロジェクトの共有ページ
プログラムとして,ネコには「[スペースキー]が押されたとき」→「[ボール]のクローンを作る」が設定され,スペースキーを押すとボールのクローンができます。ボールには「クローンされたとき」→「ずっと」で「ずっと」の中に「もし<x座標<200>ならば」→「x座標を(10)ずつ変える」,「でなければ」→「このクローンを削除する」と設定されています。クローンが作られるとボールのx座標が200より小さい間は右に10ずつ飛んでいき,200を超えると削除(消える)ようになっています。こうすることでさきほどの例えのように,タマがキーを押すごとに発射されるようなプログラムになっています。
調べる
マウスの座標や日付などの値から,マウスや特定のキーが押されたかなど,さまざまな要素について状態を調べたり,その数値を取得するためのブロックがあります。
演算
「足す,引く,かける,わる」の四則演算,割り算の余りや四捨五入のような計算結果,といった数値の比較,
といった判別など,演算の結果を得るためのブロックがあります。
変数
「変数」とはプログラム言語における,数値や文字などを入れておく「箱」のようなものです。変数を作りそれに数値を入れることで,計算をわかりやすくしたり計算結果を記録しておくことができます。「変数」のブロックのグループには,変数を作ったり,その変数に数値を入れたり,表示・非表示を切り替える操作のブロックが含まれます。また「リストを作る」というボタンがあります。これは一般的なプログラムでいう「配列」にあたります。リストを作ることで「リストの〇番目の数」というようにして,まとめて変数を管理することができます。
ブロック定義
プロック定義は自分でひとまとまりのブロックの動作を作ることで,プログラムで言う「関数」を作るようなものです。プログラムを作る時に,同じ動きが複数の箇所で必要になるときがあります。そうしたとき,それぞれの箇所で同じブロックのまとまりを設定するのではなく,同じになるブロックのまとまりをブロック定義で設定し,作られたブロックを使うことで効率よくプログラムを作ることができます。また,ブロックのまとまりがあまりに縦に長くなりそうな場合や,どんな処理をしているかをわかりやすくするために,ブロックの一部分を切り離してブロック定義のブロックにし,見やすくすることもできます。
ブロック定義では作るブロックに数値などを渡し,その内容に合わせて動くようにすることができます。こうして渡された数値などを「引数」と言います。
以下はサンプルです。
プロジェクトの共有ページ
プログラムとして,上下左右の矢印キーを押すことでネコが「ニャー」と鳴くのですが,矢印の違いで鳴き声の大きさが変わります。ブロック定義で音量の大きさの数値を引数で渡し,「音量を(数値)%にする」→「[ニャー]の音を鳴らす」を設定してブロックを作成しています。そして作成したブロックは上下左右の矢印キーが押されたときに,それぞれ違う値を設定して作ったブロックを設定しているのでちがう大きさで「ニャー」と鳴く動きをしています。
タグ:Scratch
総合管理者|2022年7月8日