今回はテレビゲームの創世記から存在しているブロックくずしを作ってみよう。Scratchを使えばこれもとても簡単にできる。

いつものように新しいプロジェクトを作成したら、猫ちゃんのスプライトを削除する。今回猫ちゃんはおやすみだ。

[ブロックの作成と配置]

まずは、ブロックを作成しよう。

ベクターモードにして四角を描画する。大きさを横幅100縦30になるようにハンドルを調整し、好みをの色を塗る。

スプライトの中心を四角形の真ん中に設定しよう。(だいたいでよい)

[見た目]にある「大きさ〜にする」を利用して50%に縮小する。(設定後クリックで反映)

スクリプトを追加しよう。

2重の繰り返し文を使って5行9列に配置をしよう、変数iとjを利用して描画される位置を調整している。

ここまでで実行してみよう。45個のブロックが配置されるはずだ。

iとjの表示はいらないのでチェックを外しておこう。

作成したブロックのスクリプトに名前をつけておこう。

スプライトの[i]の表示をクリックして

今回は「ブロック」という名前をつけた。

[パドルの作成と配置]

操作するバーとなるパドルを作成しよう、新しいスプライトを作成し、さきほど作ったブロックと同様に四角形を作成し好みの色を塗る。

大きさを70*15とし、名前を「パドル」とした。

これに左右に移動できるうよう、スクリプトを付与する。

 

矢印キーによって左右に移動するシンプルなスクリプトだ。

[ボールの配置]

それではボールを配置しよう。ボールはあらかじめ用意されているスプライトから選んだ。

ボールにスクリプトを追加する。

パドルまたは、ブロックに接触したら反射角のほうに向けるように書く。反射角は

180-向き

で求めることができる。

色の部分は実際にブロックとパドルの色をサンプリングして、指定しよう。

そして、取りこぼしたら「すべてを止める」でゲームを終了だ。

[ブロック消去の処理]

ブロックとボールがぶつかった時消滅するようにする。

ブロックのスプライトに処理を追記する。

これで、一通りブロック崩しの処理が実現できた。最後に全部ブロックを消せたらゲーム終了にしよう。

赤囲みの部分が追記したところだ。変数countというのを作り、生成の際に一つずつカウントアップしていき。ボールと当たって消滅するときにcountを一つ減らすようにしている。そして0になったら終了だ。

[まとめ]

ブロックの生成の際、クローンと2重ループを利用した。このように○行○列の作りを見たときは2重ループの使用を考えるといいだろう。はね返り処理の際の反射角の求め方はゲームをつくる際よく出てくるので基本部分を理解しておこう。今回は誤差なく反射するが、少しランダムの要素をいれるとゲームに面白みがでるので試して見てもらいたい。

[今回の完成版]

[今回のプロジェクト]

https://scratch.mit.edu/projects/167220768/