【スクラッチ(Scratch)】クローンを使ってみよう!

この記事では、スクラッチ(Scratch)のクローンの使い方を紹介しょうかいします。

クローンは、スプライトをコピーすることができる機能きのう

たとえば、シューティングゲームでタマを連続れんぞくして打ちたいときに、同じスプライトをたくさん作るのは大変たいへんですね。

しかしクローン機能きのうを使えば、ブロックひとつでスプライトを簡単かんたんにコピーできるので便利べんりです。

という方向け。

クローンの機能きのうが分かりやすい、かんたんなプログラムれいにあげながら紹介しょうかいします。

スクラッチがはじめての方は、下の記事からごらんください。

スポンサーリンク

クローンとはスプライトをコピーすること

クローンのイメージ

クローンとは、プログラムを使ってスプライトをコピーすることです。または、コピーされたスプライトのこともクローンとびます。

クローンはオリジナルのスプライトの状態じょうたい座標ざひょう表示ひょうじ非表示ひひょうじなど)を引きつぎながらべつのモノとして存在そんざいします。

プログラムも引きつがれます。

「クローン」と「スタンプ」のちがい
ペン拡張機能かくちょうきのうにあるスタンプは、せんたく中のスプライトと同じ見た目の画像がぞうをステージにはりける機能きのうです。
一見クローンとていますが、はりけられた画像がぞうはスプライトではないので、プログラムで動きをつけることができません。

 

クローンに関するブロック

クローンに関するブロック

クローンにかんするブロックは3種類しゅるい制御せいぎょのカテゴリにあります。

  • 自分自身▼のクローンを作る
  • クローンされたとき
  • このクローンを削除さくじょする

 

自分自身▼のクローンを作る

指定したスプライトのクローンを作成さくせいするブロックです。

自分自身の他に、べつのスプライトのクローンを作ることもできます。

同時に存在そんざいできるクローンの数はプロジェクト全体で300まで。300をこえた場合、クローンは作成さくせいされません。

 

クローンされたとき

クローンが作成さくせいされると、「クローンされたとき」下に組みこまれた命令めいれいが実行されます

 

このクローンを削除する

クローンを消すブロックです。

また、プログラムを停止ていしするとすべてのクローンが消えます。

ひとつずつ削除さくじょする場合は「このクローンを削除さくじょする」ブロックを使いましょう。

プログラムを停止ていしする方法ほうほうは下のとおりです。

  • 緑のハタ
  • 停止ていしボタン
  • 「すべてを止める」ブロック(制御せいぎょカテゴリ)

 

クローンを使った簡単なプログラム

クローンを使ったプログラム

クローンにかんするブロックを使ったプログラムを作ってみました。

変数へんすう「色の効果こうかを使ってクローンのネコの色をえています。

  • 緑のハタをおされたとき、ネコのクローンを3つ作る。
  • ハートのスプライトがおされたとき、ネコのクローンを作る。
  • クローンされたとき、色をえてどこかの場所へいく。
  • ネコのクローンがおされたとき、そのクローンを削除さくじょする。

 

スポンサーリンク

クローンとイベントブロック

クローンは、スプライトの「緑のハタがされたとき」以外いがいのイベントブロックに反応はんのうします。

たとえばメッセージを送った場合、オリジナルとクローンどちらも「メッセージを受け取ったとき」ブロックの下に組みこまれた命令めいれいが実行されます。

クローンとイベントブロック

 

変数を使い分ける

変数を追加する画面

そもそも変数へんすうって何?という方は、下の記事からごらんください。

Scratchの変数へんすうには3つのタイプがあり、変数へんすう作成さくせいする時にタイプを指定できます。

  • すべてのスプライトで使えるグローバル変数へんすう
  • このスプライトだけで使えるローカル変数へんすう
  • 世界中で共有きょうゆうできるクラウド変数へんすう

今回は、グローバル変数へんすうローカル変数へんすうについて説明せつめいします。

クラウド変数へんすうについては「【スクラッチ(Scratch)】Scratcherになってクラウド変数を使ってみよう!」でくわしく解説かいせつしています。

グローバル変数へんすうとローカル変数へんすう、それぞれのイメージは下の画像がぞうのような感じです。

グローバル変数とローカル変数のちがい

ではプログラムを見ながら、ちがいをみていきましょう。

 

すべてのスプライト用(グローバル変数)

グローバル変数へんすうは、ステージとすべてのスプライトが使うことのできる変数へんすうです。

グローバル変数を使ったプログラム

画像がぞうのプログラムにある変数へんすう「色の効果こうかはグローバル変数へんすうです。

クローンが作成さくせいされたときに40ずつ足され、アヒルのスプライトがおされたとき「色の効果こうかあたい表示ひょうじします。

緑のハタをおしてクローンを3つ作った後、アヒルをおして「色の効果こうか表示ひょうじさせたら、すべてのクローンで120が表示ひょうじされました。

これは、すべてのスプライトが同じ変数へんすう「色の効果こうかを見ているからです。

 

このスプライトのみ(ローカル変数)

ローカル変数へんすうは、このスプライトだけがえることができる変数へんすうです。

クローンを作ったとき、オリジナルのローカル変数へんすうあたいが引きつがれますが、その後クローンのローカル変数へんすうえてもオリジナルのローカル変数へんすうわることはありません。

ローカル変数を使ったプログラム

画像がぞうのプログラムにある変数へんすう「数字」はローカル変数へんすうです。

クローンが作成さくせいされたときに200~300までのランダムな数字を設定せっていして、アヒルのスプライトがおされたとき「数字」あたい表示ひょうじします。

緑のハタをおしてクローンを3つ作った後、アヒルをおして「数字」表示ひょうじさせたらバラバラな数字が表示ひょうじされました。

これは、それぞれのスプライトで持っている固有こゆう変数へんすう「数字」を見ているからです。

 

オリジナルとクローンの動きを分ける

オリジナルとクローンの動きを分けたい場合、ローカル変数へんすうを使ってオリジナルまたはクローンのどちらか区別くべつさせる方法ほうほうがあります。

オリジナルとクローンの動きを分ける

「緑のハタがおされたとき」は、一度すべてのクローンが削除さくじょされるためオリジナルのスプライトのみ実行されます。

また、「クローンされたとき」はクローンのみが実行されます。

この特性とくせい利用りようして、ローカル変数へんすう(スプライト)に区別くべつがつくような文字列や数字(オリジナル、クローン)を入れておいて、ローカル変数へんすうあたいによってオリジナルとクローンの処理しょりを分けるようにしています。

 

スポンサーリンク

クローンを使って雪の結晶を降らせてみた

クローン機能きのうを使って雪をらせるプログラムを作ってみました。

 

プログラムは下の画像がぞうのとおりです。

雪の結晶を降らせるプログラム

オリジナルのスプライトはクローンを作る処理しょりのみで動くことがないので、かくす」ブロックを使って見えなくしました。

作成さくせいしたクローンは「クローンされたとき」表示ひょうじする」ブロックで表示ひょうじさせています。

かくす」ブロックと表示ひょうじする」ブロックは見た目カテゴリにあります。

 

まとめ

クローンとは、プログラムを使ってスプライトをコピーすることです。

また、コピーされたスプライトのこともクローンとびます。

クローンを自由に使いこなせるようになるには大変たいへんそうだと感じるかもしれません。

まずは本などにのっているゲームをマネして作ってみて、どんなふうにプログラムが動くのか
トレース命令めいれい順番じゅんばんにたどって状態じょうたい確認かくにんすること)してみるといいと思います。

 

タイトルとURLをコピーしました