広告

【Scratch】【ブロック崩し】4日目 ブロックの表示と当たり判定

2022.10.10更新

【Scratch】【ブロック崩し】のタイトル画像になります

Scratch(スクラッチ)を使って入門プログラムの定番、ブロック崩しを作っていきます。

ブロック崩しを通してたくさんのプログラムの組み合わせ方、キャラクターの移動方法、簡単な場面の切り替えなどを学んでいきます。

「Scratch(スクラッチ)でプログラミング入門」の応用編になりますので、まだ終えてない方はそちらを先にご覧ください。

ブロックの表示と当たり判定

今回はブロックを表示して、その当たり判定を作っていきます。

ブロックの代わりとなるスプライト「Apple」とそれを大量に表示する為に使用する変数として「クローンx座標」「クローンy座標」「カウント」という名前の3つの変数を用意しておいてください。

【Scratch】【ブロック崩し】ブロックの表示と当たり判定の説明画像1

それではいってみましょう!

りんごを大量に表示

たくさんのスプライトを使いたい時は「クローン」でしたね!

というワケでクローンを使ってりんごを大量に表示していきます。

さきに完成図ですが

【Scratch】【ブロック崩し】ブロックの表示と当たり判定の説明画像2

こんな感じで合計16個のりんごを表示してみます。

まずは16回クローンを作成します。

【Scratch】【ブロック崩し】ブロックの表示と当たり判定の説明画像3

11日目で説明した通りの流れでまずスプライト本体を隠します。

その上でカウント用の変数、クローン用の座標変数など必要な変数の初期化を行い「繰り返し」ブロックを使ってクローンの作成に入ります。

クローンを作るたびに変数カウントの値を上げていき必要な回数分クローンを作成します。

クローンを16回作成するのに、なぜ「~回繰り返す」ブロックではなくわざわざ「カウント」用の変数を使ったのかは後ほど説明します。

では「クローンされたとき」のプログラムに入ります。

【Scratch】【ブロック崩し】ブロックの表示と当たり判定の説明画像4

クローンの座標を先ほどの変数を使って設定、表示するたびに座標を横にずらして・・・、

このへんまでは説明はいらないかと思います。

問題はこの

「もしカウントを8で割った余りが0なら」

ですね!

覚えておりますでしょうか?

13日目の後半で説明しました「割った余り」を使ったプログラミングテクニックになります。

今回は左上からりんごの表示を始めるので、ここでやりたい事は「りんごを横に8個表示するたびにりんごのx座標を左端に戻して、y座標をりんご一つ分ずらしてあげる」になります。

ですので変数「カウント」を8で割った余りが「0」の時に座標を設定しなおしてあげればよいワケです。

ちょっとわかりづらい方の為にりんごを横に3つずつ10個表示するというプログラムに変更してみます。

【Scratch】【ブロック崩し】ブロックの表示と当たり判定の説明画像5

カウントを10までに変更して

【Scratch】【ブロック崩し】ブロックの表示と当たり判定の説明画像6

横に3つなので「3で割った余りが0なら」に変更すると・・・、

【Scratch】【ブロック崩し】ブロックの表示と当たり判定の説明画像7

こんな感じになりますね!

当たり判定をつける

あとは当たり判定をつけるだけですね!

事前にボールの初期y座標をゲーム開始の瞬間にりんごにぶつからないように少し下にずらしておいてください。

【Scratch】【ブロック崩し】ブロックの表示と当たり判定の説明画像8

「クローンされたとき」の後半に次のプログラムを加えてください。

【Scratch】【ブロック崩し】ブロックの表示と当たり判定の説明画像9

「ずっと」ブロックを使って当たり判定を追加します。

「もしボールに触れたなら変数「y増加量」のプラスマイナスを入れ替えてボールを反射、そのクローンを削除」すれば

【Scratch】【ブロック崩し】ブロックの表示と当たり判定の説明画像10

とても簡単ではありますがいちようブロック崩しができました!

ここまでのプログラム全体になります。

中間プログラム3(ネコちゃん)

中間プログラム3(ボール)

中間プログラム3(りんご)

それではなんとなくの骨組が完成したトコロで次回はタイトルとゲームクリアを加えてもう少しゲームっぽく仕上げていきます。

次回

5日目 タイトルとゲームクリア

広告

Copyright 2016 K.N/petitetech.com