ビジュアルプログラミングツールである「Scratch」を使って、プログラミングで何ができるのかを体験してもらう本連載。今回は、キャラからボールを発射するサンプルを作り、キャラが幽霊を撃つシューティングゲームにする。また、自分で新しい命令ブロックを作る方法も紹介する。
本連載「Scratchで始めるプログラミング教育」は、ビジュアルプログラミングツールである「Scratch」を使って、「プログラミング」で何ができるのかを体験してもらう連載だ。
基本的にScratchの使い方やプログラミングの仕方は動画で解説し、ポイントは文章でも補足していくことで分かりやすく学べると思うので、子どもにプログラミングを体験させるきっかけにしてほしい。
前回の「Scratchならこんなに簡単!キャラが千変万化で縦横無尽」では、ペイントエディターで図形を描く方法を紹介し、スプライトをマウスの動きに着いていかせて、「ペン」で線を描く命令を使う方法、さらにスプライトのクローン(複製)を作る方法について解説した。
今回はキャラからボールを発射するサンプルを作り、キャラが幽霊を撃つシューティングゲームにする。また、自分で新しい命令ブロックを作る方法も紹介する。今回も、「ユーザー定義ブロック」「条件付き繰り返し」「初期化」「変数」という、プログラミングにおける基本的な考え方を学ぶことができる。ちょっと難しくなるかもしれないが、今回のようなゲームを作るためには必要になるので、命令ブロックに書く値を変えるなど自分でいろいろ試しながら身に付けてほしい。
まず、「ユーザー定義ブロック」を作る方法を解説する。そのユーザー定義ブロックを使って簡単なゲームも作ってみる。作るゲームは、流れてくる「スプライト(赤いボール)」を、「スプライト(猫)」がジャンプして接触しないように避けるものにする(図1)。猫が赤いボールに触れた場合は「あちゃ!」と表示させるようにする。
プログラミングの仕方や解説については動画1を参照してほしい。
以降、動画1のポイントをテキストでも補足しておく。
「ユーザー定義ブロック」は、前回紹介した「クローン」と同じく、Scratch 2.0で追加された機能だ。今回作るユーザー定義ブロックはスプライトが「ジャンプ」するものだ。ユーザー定義ブロックは「その他」の分類から定義していく(図2)。
猫に書かれた命令は図3だ。図3の赤い線で囲った部分がユーザー定義ブロックだ。
「y座標を100ずつ変える」で上方向にジャンプし、その地点で「0.5秒待つ」で待機させておき、0.5秒が過ぎると、今度は「y座標を-100ずつ変える」で、下方向に落とさせている。この一連の動作で猫は「ジャンプ」するアニメーションをする。
このようにプログラミングでは、命令の固まりに自分が使いやすいように名前を付けて、使い回すことができる。今回は、「上向き矢印キーが押されたとき」だけ「ジャンプ」するようにしているため何が便利なのか分かりづらいかもしれないが、「上向き矢印キーが押されたとき」以外でもジャンプさせたい場合はどうだろうか。
例えば、「aのキーを押したとき」や「マウスをクリックしたとき」、次回紹介する「カメラで手を動かしたとき」「マイクから音を受け取ったとき」などでもジャンプさせたい場合に、「ジャンプ」として名前を付けた図3の命令の固まりをいちいち書いていたのでは、手間が掛かってしまう上に、分かりづらくなってしまう。
そこで、今回のように分かりやすい名前で使い回しやすくするのは、プログラミングでは、「部品化」と「再利用」といって、よくある考え方なので覚えておいてほしい。
「スプライト(ボール)」に書かれた命令は図4だ。
赤いボールが猫に触れた場合に、「イベント」分類の「message1を送る」を追加している。これは赤いボールの中に書いている命令で、猫が赤いボールに触れたときに「あちゃ!」と言わそうとすると、赤いボールが「あちゃ!」と言ってしまう。
それでは都合が悪いので、「message1を送る」を追加して、猫の方で「イベント」分類の「message1を受け取ったとき」(図3)に、猫に「あちゃ!」と言わすようにしている。
このように、スプライトとスプライトの間で「メッセージ(message)」を送ったり、受け取ったりするのも、プログラミングではよくある考え方なので、注意してもらいたい。メッセージについては、後ほど別の使い方も紹介するので、併せて見ることで理解しやすいだろう。
Copyright © ITmedia, Inc. All Rights Reserved.