Scratch_クローンで打ち上げ花火!花火がうずまきになる罠も解説

Scratch_クローンで打ち上げ花火!花火がうずまきになる罠も解説
この記事はだいたい 9 分前後で読めます。

この記事でできること

前回、画面いっぱいに星を散らすプログラムを作りました。今回はそれを一歩進めて、クリックした場所で星がパッと開く「打ち上げ花火」 を作ります。

クリックするたびに、その場所から星が一周ぐるっと飛び散り、だんだん透明になりながら少し落ちて消えていきます。色はクリックのたびに変わるので、画面の好きな場所で何発でも花火を打ち上げられます。

そして今回は、私(子ども)が実際にハマった 「花火のつもりが、うずまきになってしまう罠」 と、その直し方も正直にお見せします。ここがいちばんの学びどころでした。

使うのは Scratch オンライン版だけ。所要時間は30分前後、対象は Scratch をさわったことがある初級者(小学生のお子さんと一緒でもOK)です。

使う新しいブロック

今回の主役は「クローン」です。スプライトを画面の中でたくさんコピーできる機能で、花火の一粒一粒をクローンで作ります。前回の星をたくさん出す仕組みと考え方は同じなので、続きとして取り組みやすいはずです。

準備:星のスプライト

新しいプロジェクトを作り、小さな星のスプライトを1つ用意します。スプライト一覧から星を選んでもいいですし、自分で星を描いてもOKです。

まずは「うまくいかなかった」バージョン

最初、私はこう作りました。スクリプト①で「クローンを作る → 10度回す」をくり返し、スクリプト②(クローンされたとき)で各粒を動かす、という形です。

ところが実際に動かすと、星が全方向に開かず、1本の線がうずまき状にカーブして並ぶだけになってしまいました(彗星のような形)。

なぜうずまきになるのか

原因は〔制御〕(36) 回繰り返す の動き方にありました。

Scratchの繰り返しブロックは、1周まわるごとに画面をいったん描き直して(わずかに止まって) から次に進みます。そのため、

  1. クローン1個目を作る → 画面を描き直す(少し時間が経つ)
  2. その間に1個目はもう動き出して、前に進んでしまう
  3. 2個目を作る(向きは10度ずれている)→ また描き直す
  4. これを36回くり返す

つまり「先に生まれた星ほど遠くまで飛び、しかも向きも少しずつずれている」状態になり、距離と角度が積み重なって、きれいなうずまきになってしまうのです。

直し方:自作ブロックで「一気に」作る

花火にするには、36個のクローンを「同じ瞬間に」作りきる必要があります。そこで使うのが、Scratch定番のテクニック「画面を再描画せずに実行する」自作ブロックです。

手順はこうです。

  1. 〔ブロック〕カテゴリ(一番下・ピンク色)→「ブロックを作る」
  2. 名前を「花火を開く」にする
  3. 「画面を再描画せずに実行する」にチェックを入れて「OK」
  4. 出てきた「定義 花火を開く」に、クローンを作る繰り返しを移す

自作ブロックの定義

ブロック定義から、「ブロックをつくる」をクリックすると、下記画像のウィンドウがでてくるので、下のほうにある「画面を再描画せずに実行する」にチェックをいれる。
その後に定義したブロックを使って繰り返す処理を作成する。

スクリプト①:準備と打ち上げ

ポイントは「花火を開く」が自作ブロックになっていること。これで36個の星が同じ瞬間にまんなかから生まれ、いっせいに開きます。

スクリプト②:花火の粒(クローン)の動き

クローンは「作られた瞬間の向き」を受け継ぎます。①で10度ずつ向きをずらして36個作っているので、各粒が違う方向を向いた状態でスタートし、自分の向きに動くだけで全方向へ飛び散ります。

  • (4) 歩動かす … 外側へ飛んでいく
  • y座標を (-1) ずつ変える … 重力で少しずつ落ちる
  • 幽霊の効果を (4) ずつ変える … 25回で合計100になり、ちょうど透明になって消える

最後の「このクローンを削除する」で、消えた粒をきちんと片づけます。これが無いと星が画面に残り続けます。

もっと花火らしくするアレンジ

きれいな円ができたら、もう1〜2手間で本物の花火に近づきます。

粒の飛ぶ距離をバラバラにする。 ②の「(4) 歩動かす」を次のように変えると、フワッとした自然な広がりになります。

重力を強くする。 ②の「y座標を (-1) ずつ変える」を (-2) や (-3) にすると、開いたあとに下へ垂れる、しだれ花火っぽい動きになります。

一粒ずつ色を変える。 ②に「色の効果を (5) ずつ変える」を足すと、カラフルな花火になります。

数字を変えるだけで見た目が大きく変わるので、お子さんと「どの数字が一番きれい?」と実験すると盛り上がります。

つまずいたときのチェックリスト

花火が開かず、うずまきになる → クローンを作る繰り返しが、自作ブロック(画面を再描画せずに実行する)に入っていません。本文の手順で自作ブロックに移します。

クリックしても何も出ない → 元の星を「隠す」にしているので、スクリプト②の先頭に「表示する」が必要です。

星が消えずに残る → 「このクローンを削除する」が無いか、繰り返しの中に入っています。削除は繰り返しを抜けた後に置きます。

連打すると重くなる → クローンは同時に300個まで。「0.2秒待つ」を入れるか、粒の数を減らすと安定します。

よくある質問

クローンは何個まで作れますか?

Scratchでは、同時に存在できるクローンは300個までです。それを超えると新しいクローンは作られません。花火を連続で打ち上げるときは「このクローンを削除する」で古い粒をきちんと消すか、「0.2秒待つ」で間隔をあけると安定します。

「自作ブロック」とは何ですか?

自分でいくつかのブロックをひとまとめにして、新しい命令ブロックを作る機能です。今回は「画面を再描画せずに実行する」設定をオンにするために使いました。この設定が、36個のクローンを同じ瞬間に作りきって花火を開かせるカギになっています。

花火がうずまきになってしまいます。

クローンを作る繰り返しが、自作ブロック(画面を再描画せずに実行する)の中に入っていないことが原因です。繰り返しが1周ごとに画面を描き直すため、先に生まれた星ほど遠くまで飛んでうずまきになります。本文の手順で繰り返しを自作ブロックに移すと、全方向に開く花火になります。

まとめ

今回は前回の「星をたくさん出す」プログラムを発展させて、クローンで打ち上げ花火を作りました。とちゅうで出会った「うずまきの罠」は、繰り返しブロックが1周ごとに画面を描き直す、というScratchの大事な仕組みを知るよいきっかけになりました。

クローンは雨・雪・シューティングの弾など、いろいろな作品に応用できる便利な機能です。数字を変えるだけで表情が変わるので、お子さんの「やってみたい」を引き出しやすいテーマです。ぜひ親子でいろいろな花火を打ち上げてみてください。

Wrote this article この記事を書いた人

TOPへ