スクラッチでキャッチゲームを作ろう

プログラムの大まかな流れを考えよう。

  1. ボールは上から下方向に転がる。
  2. ネコはボールに当たらないように動く。
    ・右矢印キーで右に動く。
    ・左矢印キーで左に動く。

スプライトや背景を準備しよう。

  1. スプライトを選ぶ。
    ・Ballのスプライトを選ぶ
    スプライトリストのところの右下ネコちゃんマークにマウスを近づけるとメニューが出てきますので、🔍マークをクリックしてスプライトを選びます。
  2. 背景を選ぶ
    ここでは位置がわかるようにXy-gridの背景を選んでいます。
  3. ステージをととのえる。
    ・Cat2の位置を変える。
     ステージのネコにマウスを合わせドラッグして下側に移動します。
    ・最初立ち上げた時にあったCatのスプライトは非表示にするか削除します。
  4. プログラムの実行方法を確認する。
    ・右上の緑の旗マークをクリックするとプログラムを実行します。
    ・隣の赤丸をクリックするとプログラムを終了します。
準備する
Scratchの画面

Cat2の動きをプログラムしよう。

Cat2のプログラム
Cat2のプログラム

コードエリアにプログラムします。
ドラッグしてきたブロックをつなげてプログラムします。

Cat2(スプライト)をクリックしてCat2のコードエリアにプログラムします。

「ずっと」のブロックで処理を繰り返しています。このブロックがなかったらどうなるかな?

コンピュータはとっても処理が速いです。

Ballの動きをプログラムしよう。

Ballのプログラム
Ballのプログラム

コードエリアにプログラムします。

Ball(スプライト)をクリックしてBallのコードエリアにプログラムします。

「どこかの場所に行く」のあとにy座標を指定するブロックを入れています。
このブロックがなかったらどうなるのかな?

Cat2とBallのプログラムができたら動かしてみます。
「あれ?思った動きとは違うな」って思ったところは…

BallがCat2に触れたのに「ニャー」って言う時と言わないときがある。

デバックしよう。

デバッグとはプログラムの誤った動きを正しく修正する作業のことを言います。
プログラムの誤りを「バグ(虫)」に例えています。
デバッグするのは難しいけれど、プログラムの動きを想像しながらやってみましょう。

Ballが当たった時、「ニャー」といわない。

Ball と Cat2 のプログラム

Cat2の「もしBallに触れたら」の後に「1秒待つ」ブロックを挿入してみます。
動きが止まってニャーというときもあれば、Ballだけが移動してしまっている時もあります。

次に、Ballの「もしCat2に触れたら」の後に「1秒待つ」ブロックを挿入します。
今度は、BallがCat2に触れたら必ず止まって「ニャー」というようになりました。

ということは・・・

「もしBallに触れたら」→Ballがすでにどこかに移動して「もしCat2に触れたら」にかかってない?
「もしBallに触れたら」→Ballが移動する前に1秒待っているので、Cat2の「もしBallに触れたらの」判断文が実行されてる?
なんて推測ができます。

そして、できるだけ同じところで処理するようにしたほうが良いと思います。
処理はまとめて見やすくすると、デバックするのも楽になります。
「もしBallに触れたら」と「もしCat2に触れたら」の処理をまとめましょう。

音が違っているのは、スプライトにある音を使っているからです。
同じ音が良ければ、Ballのスプライトから音をコピーします。

・どこで何の処理をしたらどうなるのか。
・プログラムは簡潔に見やすくできているか。

いろいろ考えながらいろいろ試してみましょう。

Scratchは、MITメディア・ラボのライフロング・キンダーガーテン・グループの協力により、Scratch財団が進めているプロジェクトです。https://scratch.mit.edu から自由に入手できます。