クローンの作り方を学ぶ
クローンを作ることで同じスプライトをいくつも表示させてそれぞれ動かすことができます。 このページの説明ではもともとの1体をオリジナルと呼び、 クローンを作るで作られたものをクローンと呼ぶことにします。 サンプルプロジェクトを読み込み動かしてみましょう。
-
クローンの作り方
クローンの作り方
ファイルを読み込む方法
パソコンの中にあるサンプルプログラムをスクラッチで読み込んで動かしてみましょう。
- 公式サイトを開きます。
https://scratch.mit.edu/ - 左上のメニューの「作る」をクリックします。
- 左上のファイルをクリックして、「コンピューターから読み込む」をクリックします。
- 「PC」 - 「ドキュメント」 - 「scratch_samples」の順にダブルクリックします。
そして、「CloneSample.sb3」を選択します。
- 以下の画面が出たら、OKをクリックします。
-
※次のいずれかの場合には「サンプルプログラムをダウンロードする方法」に従ってダウンロードし、
「scratch_samples」フォルダに置いてください。
・「scratch_samples」フォルダがない
・「scratch_samples」フォルダ内にファイルがない
・サンプルプログラムのファイルを誤って削除してしまった
・サンプルプログラムのファイルを誤って変更してしまった
読み込んだサンプルプロジェクトを動かしてみる
- 「clonesample.sb3」の読み込みができたら
をクリックし、を押しましょう。
サルの クローンが30体作られ、オリジナルと合わせて31体のサルが表示されます。
オリジナルは100歩動くごとに1体クローンを作ります。
Playerがサルに触れると、クローンだった場合は消え、 逃げるサルのクローンを作ります。 オリジナルだった場合は「見つかっちゃった」と発言し、 サルと逃げるサルのクローンすべてが消えます。
逃げるサルは(2歩×逃げる回数)だけ 移動した後に消えます。
10秒に1回、オリジナルのサルの位置にバナナ のクローンが作られます。
クローンの特徴
- を実行するとクローンが1体作られます。 の ようにして他のスプライトのクローンを作ることもできます。
- クローンは作られたタイミングで
のスクリプトを一度実行します。
-
を実行するとそれを実行したクローンが削除されます。
- 「すべてのスプライト用」として作った変数はすべてのクローンで共有します。
(クローンだけでなくすべてのスプライトで一つの変数を共有します)
- 「このスプライトのみ」として作った変数はオリジナルやクローンが1体ずつ持ち、
それぞれ別の値を持つことができます。
- サンプルプロジェクトで逃げる回数の代わりに
逃げる回数
-すべてのスプライト用を使ってどうなるか確認してみましょう。
共有の変数に対してそれぞれのクローンが1ずつ減らしていくので すぐに0以下になってしまい、クローンが作られてもすぐに消えてしまいます。
- や のブロックを置いた場合、オリジナルと各クローンのそれぞれで実行されます。
- これらのスクリプトの中で「すべてのスプライト用」の変数の値を増やしたり
減らしたりする場合には注意が必要です。
オリジナルやすべてのクローンで 実行すべき処理であるのか、オリジナルだけが実行すべき処理であるのかを明確にして、 それに応じたスクリプトにする必要があります。
そうしないと先ほど挙げた例のように、すべてのクローンが1つの変数を変更して 想定と異なる値になってしまったりします。もう一つ例を挙げます。
あるメッセージを受け取ったり、あるキーが押されたらクローンを1体 作るといったスクリプトを作るとします。
- その際に単純に のように作ると
- となってしまいます。
それを防ぐには以下のように「オリジナルである場合のみクローンを作る」といった方法があります。
サンプルプロジェクトではがクリックされたときに を実行し、 の中で を実行することで、 オリジナルであればクローン?=no、 クローンであればクローン? =yesとしてどちらであるかを判定できるようにしています。