
この記事でできること
前回、画面いっぱいに星を散らすプログラムを作りました。今回はそれを一歩進めて、クリックした場所で星がパッと開く「打ち上げ花火」 を作ります。
クリックするたびに、その場所から星が一周ぐるっと飛び散り、だんだん透明になりながら少し落ちて消えていきます。色はクリックのたびに変わるので、画面の好きな場所で何発でも花火を打ち上げられます。
そして今回は、私(子ども)が実際にハマった 「花火のつもりが、うずまきになってしまう罠」 と、その直し方も正直にお見せします。ここがいちばんの学びどころでした。
使うのは Scratch オンライン版だけ。所要時間は30分前後、対象は Scratch をさわったことがある初級者(小学生のお子さんと一緒でもOK)です。
使う新しいブロック
今回の主役は「クローン」です。スプライトを画面の中でたくさんコピーできる機能で、花火の一粒一粒をクローンで作ります。前回の星をたくさん出す仕組みと考え方は同じなので、続きとして取り組みやすいはずです。

準備:星のスプライト
新しいプロジェクトを作り、小さな星のスプライトを1つ用意します。スプライト一覧から星を選んでもいいですし、自分で星を描いてもOKです。
まずは「うまくいかなかった」バージョン
最初、私はこう作りました。スクリプト①で「クローンを作る → 10度回す」をくり返し、スクリプト②(クローンされたとき)で各粒を動かす、という形です。
ところが実際に動かすと、星が全方向に開かず、1本の線がうずまき状にカーブして並ぶだけになってしまいました(彗星のような形)。

なぜうずまきになるのか
原因は〔制御〕(36) 回繰り返す の動き方にありました。
Scratchの繰り返しブロックは、1周まわるごとに画面をいったん描き直して(わずかに止まって) から次に進みます。そのため、
- クローン1個目を作る → 画面を描き直す(少し時間が経つ)
- その間に1個目はもう動き出して、前に進んでしまう
- 2個目を作る(向きは10度ずれている)→ また描き直す
- これを36回くり返す
つまり「先に生まれた星ほど遠くまで飛び、しかも向きも少しずつずれている」状態になり、距離と角度が積み重なって、きれいなうずまきになってしまうのです。
直し方:自作ブロックで「一気に」作る
花火にするには、36個のクローンを「同じ瞬間に」作りきる必要があります。そこで使うのが、Scratch定番のテクニック「画面を再描画せずに実行する」自作ブロックです。
手順はこうです。
- 〔ブロック〕カテゴリ(一番下・ピンク色)→「ブロックを作る」
- 名前を「花火を開く」にする
- 「画面を再描画せずに実行する」にチェックを入れて「OK」
- 出てきた「定義 花火を開く」に、クローンを作る繰り返しを移す
自作ブロックの定義
ブロック定義から、「ブロックをつくる」をクリックすると、下記画像のウィンドウがでてくるので、下のほうにある「画面を再描画せずに実行する」にチェックをいれる。
その後に定義したブロックを使って繰り返す処理を作成する。


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

ポイントは「花火を開く」が自作ブロックになっていること。これで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の大事な仕組みを知るよいきっかけになりました。
クローンは雨・雪・シューティングの弾など、いろいろな作品に応用できる便利な機能です。数字を変えるだけで表情が変わるので、お子さんの「やってみたい」を引き出しやすいテーマです。ぜひ親子でいろいろな花火を打ち上げてみてください。