
Scratch クローンが倍々に増えてしまうときの対処法

こんな風に、1つが2つ、2つが、4つ、4つか8つ、、、
に増えてしまうことありませんか?

「本当は1つずつ増やしたいのに。。。」
そんな時にどのように組めばよいか、本記事で説明していきます。
なぜ倍々になってしまうのか?
なんで一つずつではなく、倍々に増えていってしまうのでしょうか?
どんなときにこの現象が発生するのでしょうか?
答えは簡単で、「自分自身のクローンを作る」コマンドをクローン側も受け取ってしまうからです。
どういうことかと言うと、下の図をご覧ください。

「自分自身のクローンを作る」を押すと、ネコのクローンがつくられます。
1体→2体になります。
ここまでは想定通りですよね。
そのあと、もう一度「自分自身のクローンを作る」を押すと、元のネコに対しては当然のことながら、さっきクローンされたネコにも、「自分自身のクローンを作る」という指示がとんでしまいます。
従って、2体がそれぞれ自分自身のクローンをつくるため、
2体→4体になります。
その後はご想像通り、自乗分増えていくことになります。
この現象を回避する方法をご紹介していきます。
クローンを倍々にしない方法①個体に指示をする
クローンを倍々にせず一つずつ増やす方法はいくつかあると思いますが、
まずは個体に指示をする方法です。
先ほど話したように、「自分自身のクローンを作る」という指示が、クローンも含めたすべてのネコ(スプライト)にとんでしまうことが原因でした。
そうではなく、個体に指示をする(特定のネコにだけ指示が飛ぶ)ようにします。
一番分かりやすいのは、「このスプライトが押されたとき」に「自分自身のクローンを作る」とすると、押されたスプライトだけがクローンを作りますから、一つずつ増やすことができます。


他にも、”〇〇に触れたとき”や、”変数が△△になったとき”、とすると個体に指示をすることができます。
※変数は「このスプライトのみ」にすることが前提。

ただ、この方法は少しややこしく、分からない方は次に進んでください。
クローンを倍々にしない方法②ステージから指示する
次にステージから、クローンを作る方法です。
こちらの方が理解しやすいと思います。
ステージというのは、画面右下にあるこの部分です。

ステージは、背景をセットするために操作することが多いと思いますが、
ステージ自体にコードを書くこともできます。

このステージのコードで、先ほどから使っている自分自身のクローンを作るコマンドを使います。
「ネコ(もしくはスプライト1)のクローンを作る」という表示になっているはずです。

このコマンドをつかうと、元のネコ(クローンされていないネコ)に対してのクローンを作ることができます。

このように1つずつ増えているのが分かると思います。

***
ちなみに、ステージからではなく、他のスプライトからでもおなじことができます。
例えば、Goboを追加して、Goboで自分自身のクローンを作るコマンドをつかうと、

このようにドロップダウンリストから、「自分自身」か「ネコ」かを選ぶことができますので、Goboからネコのクローンを作ることもできます。
おまけ)クローンは300個までしか作れない
クローンは作れる数が300個までと決まっています。
したがって、上限の観点からも、むやみに増えていってしまうのはよくありません。
まとめ
ネコのコードの中に、「自分自身のクローンを作る」をつかうと、場合によって、クローンが倍々になってしまいます。
クローンは便利ですが、今回のように思わぬ動きをするので、注意が必要ですね。