クローンの作り方


クローンの作り方を学ぶ

クローンを作ることで同じスプライトをいくつも 表示 ( ひょうじ ) させてそれぞれ 動 ( うご ) かすことができます。 このページの 説明 ( せつめい ) ではもともとの1体をオリジナルと 呼 ( よ ) び、 クローンを作るで作られたものをクローンと 呼 ( よ ) ぶことにします。 サンプルプロジェクトを 読 ( よ ) み 込 ( こ ) み 動 ( うご ) かしてみましょう。

クローンの作り方

ファイルを読み込む 方法 ( ほうほう )

パソコンの中にあるサンプルプログラムをスクラッチで読み 込 ( こ ) んで 動 ( うご ) かしてみましょう。

  1. 公式 ( こうしき ) サイトを 開 ( ひら ) きます。
    https://scratch.mit.edu/
  2. 左上のメニューの「作る」をクリックします。

  3. 左上のファイルをクリックして、「コンピューターから読み込む」をクリックします。
  4. 「PC」 - 「ドキュメント」 - 「scratch_samples」の 順 ( じゅん ) にダブルクリックします。 そして、「CloneSample.sb3」を 選択 ( せんたく ) します。
  5. 以下 ( いか ) の 画面 ( がめん ) が出たら、OKをクリックします。
  6. ※次のいずれかの場合には「サンプルプログラムをダウンロードする方法」に 従 ( したが ) ってダウンロードし、 「scratch_samples」フォルダに 置 ( お ) いてください。
    ・「scratch_samples」フォルダがない
    ・「scratch_samples」フォルダ内にファイルがない
    ・サンプルプログラムのファイルを 誤 ( あやま ) って 削除 ( さくじょ ) してしまった
    ・サンプルプログラムのファイルを 誤 ( あやま ) って 変更 ( へんこう ) してしまった

読み込んだサンプルプロジェクトを 動 ( うご ) かしてみる

  • 「clonesample.sb3」の読み込みができたら をクリックし、を押しましょう。
    サルの クローンが30体作られ、オリジナルと合わせて31体のサルが 表示 ( ひょうじ ) されます。
    オリジナルは100歩 動 ( うご ) くごとに1体クローンを作ります。
    Playerがサルに 触 ( ふ ) れると、クローンだった場合は消え、 逃 ( に ) げるサルのクローンを作ります。 オリジナルだった場合は「見つかっちゃった」と発言し、 サルと 逃 ( に ) げるサルのクローンすべてが消えます。
    逃 ( に ) げるサルは(2歩× 逃 ( に ) げる回数)だけ 移動 ( いどう ) した後に消えます。
    10秒に1回、オリジナルのサルの 位置 ( いち ) にバナナ のクローンが作られます。

クローンの 特徴 ( とくちょう )

  • を実行するとクローンが1体作られます。 の ようにして他のスプライトのクローンを作ることもできます。
  • クローンは作られたタイミングで のスクリプトを一度実行します。
  • を実行するとそれを実行したクローンが 削除 ( さくじょ ) されます。
  • 「すべてのスプライト用」として作った 変数 ( へんすう ) はすべてのクローンで 共有 ( きょうゆう ) します。 (クローンだけでなくすべてのスプライトで一つの 変数 ( へんすう ) を 共有 ( きょうゆう ) します)
  •  
  • 「このスプライトのみ」として作った 変数 ( へんすう ) はオリジナルやクローンが1体ずつ持ち、 それぞれ別の 値 ( あたい ) を持つことができます。
  •  
  • サンプルプロジェクトで 逃 ( に ) げる回数の代わりに 逃 ( に ) げる回数 -すべてのスプライト用を使ってどうなるか 確認 ( かくにん ) してみましょう。
    共有 ( きょうゆう ) の 変数 ( へんすう ) に対してそれぞれのクローンが1ずつ 減 ( へ ) らしていくので すぐに0 以下 ( いか ) になってしまい、クローンが作られてもすぐに消えてしまいます。
  • や のブロックを 置 ( お ) いた場合、オリジナルと 各 ( かく ) クローンのそれぞれで実行されます。
  •  
  •  
  •  
  • これらのスクリプトの中で「すべてのスプライト用」の 変数 ( へんすう ) の 値 ( あたい ) を 増 ( ふ ) やしたり 減 ( へ ) らしたりする場合には注意が 必要 ( ひつよう ) です。
    オリジナルやすべてのクローンで 実行すべき 処理 ( しょり ) であるのか、オリジナルだけが実行すべき 処理 ( しょり ) であるのかを 明確 ( めいかく ) にして、 それに応じたスクリプトにする 必要 ( ひつよう ) があります。
    そうしないと先ほど 挙 ( あ ) げた 例 ( れい ) のように、すべてのクローンが1つの 変数 ( へんすう ) を 変更 ( へんこう ) して 想定と 異 ( こと ) なる 値 ( あたい ) になってしまったりします。もう一つ 例 ( れい ) を 挙 ( あ ) げます。
    あるメッセージを受け取ったり、あるキーが 押 ( お ) されたらクローンを1体 作るといったスクリプトを作るとします。
  •  
  •  
  • その 際 ( さい ) に 単純 ( たんじゅん ) に のように作ると
  •  
  •  
  •  
  •  
  • となってしまいます。
    それを 防 ( ふせ ) ぐには 以下 ( いか ) のように「オリジナルである場合のみクローンを作る」といった 方法 ( ほうほう ) があります。

    サンプルプロジェクトではがクリックされたときに を実行し、 の中で を実行することで、 オリジナルであればクローン?=no、 クローンであればクローン? =yesとしてどちらであるかを 判定 ( はんてい ) できるようにしています。
^