ステージ上にネコのスプライトが1個あります。
このネコのスプライトを、3個に増やすにはどうすればいいでしょうか。
もっとも簡単な方法は、スプライトを複製することです。
では、同じスプライトを大量にステージの上に登場させたい場合を考えてみましょう。
大量に複製する方法もありますね。
でも、このように大量のスプライトを作るのは大変に手間がかかります。
特にゲームでは、例えばあるスプライトが1個だけ必要になるのか何百個も必要になるのか、プレイヤーの操作によって決まるため、事前には分からない場合があります。必要数の最大を想定して事前に何百個も用意するのは大変な手間がかかります。
また、スプライトのコードやコスチュームや音を後から変更したくなった場合には、1個1個すべてのスプライトに変更を加えるという作業が必要になってしまいます。
Scratchでは、コードによって、1つのスプライトを複製して複数のスプライトをつくることができます。
複製によって作られたスプライトは、プログラムを実行中にのみ存在します。
Scratchの起動時に用意されているネコのスプライトに、下のようなコードを作ってみましょう。
ネコのスプライトをクリックすると、それと同じ位置に、複製されたスプライトが作られます。
(2個は重なっています。マウスを使って位置をずらしてみましょう。)
ブロック
複製されて、そのスプライトが生まれた瞬間に実行されるコードを追加してみましょう。
「クローンされたとき」ブロックは、複製されてそのスプライトが生まれた瞬間に実行する処理を指定するためのブロックです。
「1秒でどこかの場所へ行く」ブロックをつなげてみましょう。このブロックの「どこかの場所」というのは、ランダムに決定された場所という意味です。1秒間かけて、ランダムに決定された場所まで移動していきます。
最後に「止める」ボタンを押してプログラムの実行を止めると、クローンによって作られたスプライトは消えます。
クローンブロックによって作られたスプライトは、プログラムを実行中に限り存在するのです。
上の例を、「このスプライトがクリックされたとき」ブロックではなくて「緑の旗がクリックされたとき」に変更してみましょう。
緑の旗をクリックして新しいクローンが生まれるたびに、前回のクローンが消えてしまいます。
これは、緑の旗をクリックすると、その時点で実行中のプログラムが終了され、あたらしくプログラムが開始されるため、前回の実行中に作られたクローンは消えてしまうのです。
Scratchでは通常、ステージ上のスプライトの数とスプライトリストのスプライトの数は同じです。
しかし、クローンを使うことによって、プログラムを実行中に限り、スプライトリストの1個のスプライトに対して、ステージ上には複数個のスプライトが存在する、という状態になります。
クローンは301個まで制作できます。