こちらは、スクラッチの「〇のクローンを作る」ブロックの使い方を、詳しく徹底解説しています!
「〇のクローンを作る」ブロック
「〇のクローンを作る」ブロックは、指定したスプライトのクローンを作ります。
こちらのブロックは、基本的に「〇のクローンを作る」ブロック単体では使いません。
クローンを作った時に処理させる「クローンされたとき」ブロックや「このクローンを削除する」ブロックと一緒に利用します。
尚、クローンが作れるのはスプライトだけですので、背景はクローンを作れません。
よって、「クローンされたとき」ブロックも、スプライトを選択した時だけ表示されるブロックです。
スクラッチのクローンとは?
スクラッチのクローンとは、ブロックを使って、スプライトをプログラムの実行中に、複製(コピー)させることです。
クローンは、ブロックを実行すれば、最大300個まで複製(コピー)させることができます。
複製(コピー)されたスプライトには、それぞれ命令を与えることもできます。
また、クローンは、あくまでプログラムの実行中のみ有効な命令で、プログラムが終了すると消えてしまいます。
そのため、通常のスプライトのコピーであれば、スプライトリストにコピーしたスプライトが表示されますが、クローンでコピーしたものは、スプライトリストには追加されません。
クローンの対象
作成できるクローンの対象は、以下の2つです。
- 自分自身
- 他のスプライト
自分自身
自分自身とは、「〇のクローンを作る」ブロックを使うスプライト自身のことです。
他のスプライト
1つしかスプライトがない場合は、「自分自身」しか選択できませんが、スプライトを追加すると自動的に他のスプライトを選択できるようになります。
他のスプライトを選択すると、その選択したスプライトのクローンが作られます。
クローンの作り方
それでは、実際にどのようにクローンを作るのか、説明していきます。
こちらは、ニワトリを大量クローンさせるプログラムです。
緑の旗が押されると、「ずっと」ブロックで、ひたすら「自分自身」のクローンを複製しています。
一方で、「クローンさせたとき」ブロックを使って、クローンしたときのプログラムも作っています。
こちらは「〇へいく」ブロックで、「どこかの場所」を設定しています。
つまり、作られたクローンは、作られた瞬間にランダムな場所へ移動するということです。
緑の旗をクリックすると、早速ニワトリスプライトのクローンが作られています。
「どこかの場所へいく」ブロックで、ランダムな場所でクローンが作られているのが分かります。
スプライトリストを見てもらうと分かりますが、クローンはスプライトリストに追加されません。
このままプログラムを放置すると、あっという間にステージがニワトリスプライトで埋め尽くされてしまいました。
そこで、赤丸の「止まる」ボタンをクリックすると、一瞬でクローンが消えてしまいました。
ここでは、単にスプライトを量産しただけですが、シューティングゲームでは、弾丸をクローンで使うことが多いです。
「〇のクローンを作る」ブロックの使用例
こちらでは、「〇のクローンを作る」ブロックの使用例を紹介します。
ボールを投げるスクラッチキャット
こちらは上下矢印キーでスクラッチを動かしながら、スペースキーでボールを投げるプログラムです。
スプライトは、以下の2つです。
- スクラッチキャット
- ボール
スクラッチキャットのスクリプト
まず上下矢印キーが押されると、「y座標を〇ずつ変える」ブロックで、上下に移動させています。
そして、スペースキーが押されると、「ボール」スプライトのクローンが作られます。
ニワトリスプライトでは、自分自身のクローンを作っていましたが、こちらでは、他のスプライトのクローンを作っています。
ボールのスクリプト
こちでは、緑の旗が押されると、隠すで非表示にして、ずっとスクラッチキャットにくっつく処理をしています。
そして、クローンされたときに、表示され、「〇歩動かす」ブロックで、ボールを投げているように動かします。
最後は、ステージの端に当たると、「このクローンを削除する」ブロックで、クローンを削除しています。
制御ブロック一覧
「制御」ブロックには、以下の11個のブロックが用意されています。
- ハットブロック・・・1つ
- スタックブロック・・・3つ
- C型ブロック・・・5つ
- キャップブロック・・・2つ
ブロックの色は、山吹色で統一されています。
主に何かの処理をした場合に、発生するイベントの条件分岐で利用されるプログラムになっています。
制御ブロック | 動作 |
---|---|
〇秒待つ プログラムの処理を指定した秒数だけ一時停止する |
|
〇回繰り返す 指定した回数だけ中に入れたブロックの処理を繰り返し実行する |
|
ずっと 中に入れたブロックの処理を繰り返し実行する |
|
もし◇なら 指定した条件を満たしていれば、中に入れたブロックを実行する |
|
もし◇なら▢でなければ 指定した条件を満たしていれば1番目のC型の中に入れたブロックを実行し、条件を満たしていなければ2番目のC型の中に入れたブロックを実行する |
|
◇まで待つ 指定した条件を満たすまでプログラムを一時停止する |
|
◇まで繰り返す 指定した条件を満たすまで、中に入れたブロックの処理を繰り返し実行する |
|
〇を止める 指定したスクリプトを止める |
|
クローンされたとき クローンされたときに下のブロックを実行する【スプライトのみ】 |
|
〇のクローンを作る 指定したスプライトのクローンを作る |
|
このクローンを削除する クローンを削除する【スプライトのみ】 |