ブロック崩しゲームは昔からよくあるゲームの一つだと思います。画面の上部にブロックが並んでいて、自動的に動くボールを弾いてブロックを消していくゲームです。
今回はボールを弾く「受け皿」となる部分を車で作ってみましたが、キーボードの右と左で操作をし、ボールが地面に落ちないように弾いていく動きを作ります。Scratch(スクラッチ)では座標を使ってSprite(キャラクター)を動かすので、座標の理解が出来ているかを測ることも出来ます。
ボールはループして動き続けるようにプログラムを組みますが、ループしている動きの中で
受け皿となる車に触れた時に「もし 車に 触れたなら」という処理を組み込みます。繰り返しループしている動きの中に、「条件分岐」を入れていくわけです。「もし(if)」という条件を付与する事はプログラミングでは必要不可欠です。
その他にも、ボールに触れたら消えてしまうブロックを入れたり、点数をカウントするために変数を追加したり、ゲームオーバーやゲームクリアの時に背景を変えてみたり、ボールを地面となる部分に落としたらゲームが終わってしまう条件を入れてみたりと、ブロック崩しゲームでは、実に様々なプログラミング方法を試す事が出来ます。
専門的になってしまいますが、クローンのプログラムを使って、一つのSprite(キャラクター)だけでブロックを画面に敷き詰められるように完結したプログラムでゲームを作る事も出来れば、同じ命令を持つシンプルなSpriteを複製してゲームを作る事も出来ます。実にカスタマイズの振り幅を持たす事ができるゲームだと思います。
プログラミング教室では、年齢と理解度の異なる子供同士が同時に学習を行うので、エイドでも上級・中級・初級といった形で、難易度の異なるカリキュラムを作成するようにしています。今までにも多くのサンプルゲームを作ってきましたが、「ブロック崩しゲーム」の汎用性の高さに改めて感心させられたので、記事として書いてみました。
長々とわかりづらく失礼しました!