Scratchのクローンでブロックを並べる:繰り返しが見えた日
「ブロックがどんどん増えてる!」
以前、わが家では6歳の子どもと一緒に「ブロックなしのブロック崩し」を作りました。ボールを台(パドル)で跳ね返すだけのシンプルなゲームです。今回はそこに、いよいよ崩すための「ブロック」を追加しました。
そのときに使ったのが「クローン」というしくみです。この記事では、クローンで画面にブロックを並べた体験を紹介します。繰り返し(ループ)が目に見えてわかる瞬間や、ボールが当たるとブロックが消えるしくみ、マウスでパドルを動かすコツも、できたこと・難しかったことを正直にお伝えします。
※「スプライト」とは、Scratchで動かすキャラクターや絵のことです。「パドル」はボールを跳ね返す台、「ループ」は同じ動きをくり返す命令のことです。記事の中であらためて説明します。
前回の「ブロックなしのブロック崩し」に続きを足す
以前作ったのは、ボールと台だけのシンプルなゲームでした。崩すブロックがなく、「ボールを下に落とさないように台で跳ね返し続ける」だけの内容です。
それでも子どもは何度も遊んでいましたが、ふと「本物のブロック崩しみたいに、崩すブロックを置きたい」という流れになりました。
そこで今回は、画面の上のほうに並んだブロックを追加して、ボールが当たると消える——いわゆる「ブロック崩し」らしい形を目指しました。
ここで問題になるのが、「ブロックをたくさん並べるにはどうするか」です。1つずつ手で並べることもできますが、数が多いと大変です。そこで登場するのが「クローン」というしくみでした。
クローンって何?──スプライトの「分身」を作るしくみ
クローンとは、ひとことで言うと「スプライト(キャラクターや絵)の分身(コピー)を、プログラムの途中で増やすしくみ」です。
たとえば、ブロックのスプライトを1つだけ用意しておきます。そのブロックに「自分のクローンを作る」という命令を出すと、まったく同じ見た目のブロックがもう1つ増えます。元は1つでも、命令しただけ分身がどんどん増えていくのです。
- もとになるスプライトは1つだけ用意すればよい
- 「クローンを作る」と命令すると、同じものがコピーされて増える
- 増えたクローンは、それぞれ別々に動かしたり消したりできる
ブロック崩しのように「同じ形のものをたくさん並べたい」ときに、とても便利なしくみです。20個のブロックがほしいときも、20個を手で置くのではなく、「クローンを20回作って」とお願いするイメージです。
クローンのブロックは、Scratchでは「制御」というオレンジ色の仲間に入っています。「○○のクローンを作る」「クローンされたとき」「このクローンを削除する」の3つをセットで使います。
繰り返し(ループ)でクローンを作ると、ブロックが目に見えて増える
クローンを「たくさん」作るときに組み合わせるのが、繰り返し(ループ)です。
ループとは、「同じ命令を何回もくり返す」しくみのことです。「クローンを作る」を1回だけ書いて、それを「○回くり返す」で囲むと、その回数だけクローンが作られます。
今回は、このループを使って、ブロックを横や縦に少しずつずらしながら並べていきました。1回くり返すごとに、ブロックを少し横に動かして、またクローンを作る——これを何度もくり返すと、ブロックがきれいに並んでいきます。
ここで、思いがけない発見がありました。ブロックが1つずつ、ポン、ポンと画面に増えていく様子が、目に見えてわかるのです。

子どもはこれにとても驚いていました。一瞬で全部出てくるのではなく、くり返しのたびに1つずつ生まれていく。「今、くり返しが動いてるんだ」というのが、文字の説明なしに伝わる瞬間でした。
繰り返しは、言葉で「同じことを何回もやるんだよ」と説明しても、なかなかピンとこない概念です。でも、クローンが1つずつ増えていくのを見ると、「くり返すって、こういうことか」と体で感じられます。これは、繰り返しの基本を覚えるのにとても良い教材だと感じました。
ボールが当たるとブロックが消える(当たり判定)
ブロックを並べただけでは、まだ「崩せ」ません。次に、ボールがブロックに当たったら、そのブロックを消すしくみを足しました。
ここで使ったのが「当たり判定」という考え方です。当たり判定とは、「キャラクター同士がぶつかったことを見つけて、反応させるしくみ」のことです。
今回の場合は、こう命令しました。
- もし、ボールが自分(ブロックのクローン)に触れたら
- このクローンを削除する(消す)
「もし〜したら、こうする」という形は、前回のブロック崩しでも出てきた考え方です。プログラミングの言葉では「条件分岐」と呼びますが、難しい名前は今はいりません。「ボールが当たったら消える」という自然な日本語で十分です。
正直にお伝えすると、このクローンや当たり判定のコードを組んだのは親です。6歳の子どもが自分で書くにはまだ少し難しい段階で、ここは「親が作って、子どもは動きを楽しむ」かたちにしました。それでも、自分のゲームでブロックがちゃんと消えるのを見て、満足そうにしていました。
マウスでパドルを動かす──操作のコツと「止まる」問題
下のパドル(台)は、マウスで左右に動かすようにしました。マウスを動かすと、それに合わせてパドルが追いかけてくるしくみです。
実際に遊んでみると、ひとつ困ったことが起きました。途中でパドルが動かなくなるのです。
子どもは「あれ、動かない」と言っていました。原因を考えてみると、おそらくマウスのカーソルが画面(ステージ)の外まで行き過ぎて、反応する範囲から出てしまったのだと思います。パドルは「画面の中にいるマウス」を追いかけるので、カーソルが遠くに行きすぎると、ついていけなくなるようです。
このことから、2つの気づきがありました。
- マウスを動かすコツの練習になる:画面の中で、行きすぎないようにマウスを動かす感覚は、遊びながら自然と身についていきそうです
- 止まったら:マウスを画面(ステージ)の中にもどせば、また動き出します。これはマウスが画面の外に出ると起きるしくみ上のことなので、ステージを全画面表示にすると(画面が大きくなり)カーソルが外に出にくくなります
ブロック崩しは、マウス操作にちょうどよい練習にもなる——そんな発見もありました。
子どもの反応と、親として気づいたこと
今回いちばん印象的だったのは、ループでブロックが増えていくのを見たときの驚きでした。
これまで「繰り返し」は、キャラクターをずっと動かしたり音を鳴らしたりする形で使ってきました。でも、動き続けるものは「ずっと同じ」に見えてしまい、「何回くり返しているか」は実感しにくいものです。
その点、クローンは1回くり返すごとに、1つ結果が増えるので、繰り返しの回数がそのまま目に見えます。「くり返すと、こんなにたくさんできるんだ」という手応えが、表情からも伝わってきました。
コードを組んだのは親でも、「自分のゲームにブロックが並んで、当たると消える」という体験は、子どもにとって立派な完成でした。難しいしくみは少しずつ親が補いながら、「動く・見える・楽しい」を先に味わってもらう。今のわが家には、この進め方が合っているようです。
まとめ
- クローンは「スプライト(キャラクター)の分身を、プログラムの途中で増やすしくみ」。同じものをたくさん並べたいときに便利
- 繰り返し(ループ)でクローンを作ると、ブロックが1つずつ増えていくのが目に見えて、繰り返しの意味が体で分かる
- 「もしボールが当たったら、このクローンを消す」という当たり判定で、ブロック崩しらしく崩せるようになる
- クローンや当たり判定のコードは難しければ親が補い、子どもは「動く・見える・楽しい」を先に味わえばよい
- マウスでパドルを動かすと、画面の外までカーソルが行くと止まることがある。マウス操作の練習にもなる
次回は、ブロックを全部消したら「クリア!」と表示する終わりかたや、崩した数を数える「変数」にも、少しずつ触れていきたいと思います。
前の記事:Scratchでブロック崩しを作った:まねして学んだゲームのしくみ(今回ブロックを足したゲームの、最初のかたち)
関連記事:
- Scratchで自分だけのゲームを作る:6歳が「作りたい」を形にした日(オリジナル制作と当たり判定への挑戦)
- Scratchのブロックの種類と色の意味まとめ(「クローン」「もし〜なら」が何色の仲間か確認できる)
- Scratch作品のまねして作り方:初めてコードを書いた日の記録(「ずっと繰り返す」を初めて使った記録)
- 子どもにプログラミングを教えるコツ:エンジニア親の5つの学び(親の視点:難しい部分を補うときの考え方)
- Scratchってなに?小学生でもできるプログラミングの第一歩(Scratchの全体像から知りたい方へ)
- Scratchは何から始める?6歳の体験で作った学習ロードマップ(Scratch学習の全体像・地図で現在地を確認)