
スクラッチ(Scratch)って何?
2020年度より小学校ではプログラミング教育が必修化となり、教育の現場においても非常に注目され、様々な教育用プログラミング言語や教材が存在しています。
なかでも、スクラッチ(Scratch)は8~16才をメインターゲットに据えた無料の教育用プログラミング言語として有名で、世界中で6000万人以上に使われています。柔軟性に富んだ作りになっており、初心者から上級者まで様々なプログラムを作る事ができます。

今回は、このスクラッチを使って簡単なゲームを作り、プログラミングの楽しさや手軽さを体験してみましょう。
リンゴキャッチゲームを作ろう!
今回作るゲームは、このようにランダムで落ちてくるリンゴをキャッチして得点をカウントする内容です。
(電子書籍にて販売中の「スクラッチプログラミングでゲームを作ろう!リンゴキャッチゲーム編」より抜粋し、簡易版にて紹介しています)
1.スクラッチエディターを起動しよう
スクラッチは公式サイトにてブラウザ上で動作させることができます。
下記のリンクよりエディターを開いてください。
https://scratch.mit.edu/projects/editor/
エディター画面の左側より命令ブロックを取り出し、中央のフィールドでブロックを組み立ててプログラミングします。

2.素材を準備しよう
スクラッチでは、スプライトと呼ばれるキャラクターと背景にて構成されており、それぞれに画像や音、プログラムを設定できます。プログラムを作る前に、それぞれのスプライトを準備しておきましょう。
まず新しいスプライトを作ります。

あらかじめ用意されているスプライト画像が表示されるので、リンゴ(Apple)を選びましょう。

このようにリンゴが画面に追加されたら成功です。

同様の手順で「かご」を追加してください。

今回はスクラッチのキャラクターであるネコは不要なので削除しておきます。

スプライトが準備できたら、背景(ステージ)の画像も変えましょう。
「背景を選ぶ」より好きな画像を選んでください。

これで準備完了です。ではそれぞれのスプライトおよびステージにプログラムを作っていきます。
3.「かご」を左右に動かそう
「かご」は左右の矢印キー(カーソルキー)にて移動させます。
画面より「かご」のスプライトをクリックして選択し、下記のプログラムを作りましょう。

①…プログラムは緑の旗をクリックしたタイミングで起動します。
②…スプライトが向きを変えた時の表示方法を設定します。【回転方法を左右のみにする】命令ブロックによって、左に移動した際に逆さに表示されないようにしています。
③…左右の矢印キー(カーソルキー)が押された判断をしています。
④…矢印キー(カーソルキー)が押された際に、それぞれの方向に動かします。
⑤…キーが押された判断は連続してチェックしておく必要があるため、繰り返し命令【ずっと】命令ブロックを利用します。
ここまで作れたら緑の旗ボタンを押して、左右の矢印キー(カーソルキー)にて動くことを確認しましょう。
4.リンゴをランダムに落とそう
リンゴは画面上部から落とします。この際、横位置はランダムとします。
リンゴをクリックしてスプライトを選択し、下記のプログラムを作りましょう。

①…リンゴを画面上のランダムな位置に移動させます。
②…ランダムな位置に移動したのち、画面上部(y座標150の位置)に移動させます。
③…スプライトの向きを下向き(180度)にします。
④…画面の下部(y座標-150の位置)の達するまで10歩ずつ移動させます。
⑤…リンゴを繰り返して落下させるため、①~④を繰り返します。
ここまで作れたら、緑の旗ボタンを押してリンゴが落下する事を確認してください。
5.リンゴをキャッチした時の処理を作ろう
次は「かご」がリンゴをキャッチした(触れた)時の処理を作ります。引き続きリンゴのスプライトにて操作してください。
まず、得点として、どれだけのリンゴをキャッチしたのかを記録するための変数を作ります。
変数とはプログラム内にてデータを貯めておく箱のようなもので、今回はリンゴをキャッチする毎に1ずつ増やします。

変数を作るボタンを押すと、変数名の入力を求められます。
今回は得点用の変数を作るので「POINT」とします。

変数が作れたら、下記のプログラムを追加してください。

①…ゲームスタートのタイミングで変数「POINT」をリセットします。また、後続の処理でスプライトが非表示になる可能性があるため、表示させておきます。
②…リンゴが「かご」(Bowl)に触れたかどうかの判断をしています。
③…この時点で「かご」がリンゴをキャッチした事になるので、変数「POINT」を1だけ増やします。
④…リンゴを非表示にしてから、2秒プログラムを一時停止します。そして、画面上部(y座標150の位置)に移動してから表示させます。
これで、「かご」がリンゴをキャッチする処理を作る事ができました。
実際に動かしてみて、リンゴをキャッチするたびに得点となる変数「POINT」が増えている事を確認してください。
6.ゲームの終了時間を設定
ゲームスタートから60秒経ったらゲーム終了とします。
スクラッチでは時間をカウントする機能が備え付けられているので、これを利用します。
ここでは背景にプログラムを持たせますので、ステージをクリックしてから、下記のプログラムを作りましょう。

【~まで待つ】命令ブロックは、条件が一致するまでプログラムを一時停止させます。
タイマーが30秒を超えると、すべてのプログラムを止めます。
完成!!通して動かしてみよう
緑の旗をクリックして、想定通りにプログラムが動けば完成です。もし、うまくいかない場合、下記を参考にそれぞれのプログラムを再度見直してみてください。

このように、スクラッチでは命令ブロックを組み立てる形でプログラムが作れるので、感覚的にゲームが作れたかと思います。
今回作ったゲームを参考に独自の動きやルールなどを追加して、是非自分だけのゲームを作ってみてください!
電子書籍紹介
『スクラッチプログラミングでゲームを作ろう!リンゴキャッチゲーム編』
今回紹介したリンゴキャッチゲームは、Kindleにて発売中の電子書籍より抜粋した内容となっております。書籍では他のリンゴの動きや、ゲームオーバー時処理などを追加しています。1ステップ1ページで細かく説明しておりますので、お子様がチャレンジされる場合などに是非ご利用ください。
『スクラッチプログラミングドリル』
こちらもkindle電子書籍で発売中のスクラッチ問題集です。基礎的な動作から応用まで、1問1答形式で全50問にてステップアップしながら理解を深めて頂きます。また、保護者の方がお子様にプログラミングを教える際、ヒントとなるトピックスも掲載しておりますので、ぜひ親子でプログラミングにチャレンジしてみてください。

『スクラッチゲームテクニック集』
スクラッチを学ぶ目標として「ゲームを作りたい」というお子様が最も多いかと思います。ところが、スクラッチ入門書などで一通り学んだとしても、根本的な理解ができなければ、なかなかゲームを作るハードルが高いのも事実です。そこで、本書ではゲームを作るためのテクニックを抜粋して紹介しております。

YouTubeチャンネル紹介
キッズアイティ合同会社ではスクラッチプログラミングに興味を持って頂けるよう、様々な動画を公開しております。興味のある方是非ご覧ください!
著書のご紹介、お待ちしております
(ツクレル編集部より)技術書やテクノロジーをテーマとした書籍の著者さんからのご連絡、お待ちしております。みなさんの著書をぜひツクレルで紹介してください。
]]>