【スクラッチ(Scratch)】クローン機能の使い方|敵や弾をたくさん出す方法

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

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

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

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

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

スクラッチがはじめての人ひとは、下したの記事きじからごらんください。

スポンサーリンク

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

クローンのイメージ

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

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

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

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

 

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

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

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

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

 

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

「自分じぶん自身じしん▼のクローンを作つくる」は、指定していしたスプライトのクローンを作成さくせいするブロックです。

自分じぶん自身じしんの他ほかに、別べつのスプライトのクローンを作つくることもできます。

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

 

クローンされたとき

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

 

このクローンを削除する

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

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

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

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

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

 

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

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

クローンのブロックを使つかったプログラムを作つくってみました。

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

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

 

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

緑みどりのハタをおすと それまでに作つくられたクローンはすべて消きえます。

なので、クローンは スプライトの「緑みどりのハタが押おされたとき」以外いがいのイベントブロックをきっかけに動うごきます。

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

このプログラムの動うごき

緑みどりのハタをおすと、クローンが1つ作つくられます。

もう一度いちど 緑みどりのハタをおしても、クローンは4つにはなりません。

一度いちどすべてのクローンが消きえてから、もう一度いちど1つだけ作つくられるからです。

ボタンをおしてメッセージを送おくると、オリジナルのネコとクローンの両方りょうほうが「メッセージを受うけ取とったとき」の命令めいれいを実行じっこうします。

 

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

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

まず、ローカル変数へんすうとは何なにか説明せつめいします。

変数は3つの種類がある

変数を追加する画面

スクラッチの変数へんすうには3つのタイプがあり、変数へんすうを作つくる時ときにタイプを選えらべます。

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

ふだん みなさんが使つかっているのは、グローバル変数へんすう(すべてのスプライト用よう)ではないでしょうか。

今回こんかいは、グローバル変数へんすうとローカル変数へんすうのちがいを説明せつめいします。

クラウド変数へんすうについては「【スクラッチ(Scratch)】Scratcherになってクラウド変数へんすうを使つかってみよう!」でくわしく解説かいせつしています。興味きょうみがあったら読よんでみてください。

そもそも変数へんすうって何なに?という人ひとは、下したの記事きじから読よんでみてくださいね。

 

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

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

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

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

 

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

 

ローカル変数を使ってオリジナルとクローンを区別する

ローカル変数へんすうを使つかって、オリジナルとクローンを区別くべつするプログラムです。

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

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

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

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

 

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

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

 

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

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

オリジナルのスプライトはクローンを作つくるだけで動うごかないので、「隠かくす」ブロックで見みえなくしました。

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

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

 

まとめ

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

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

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

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

 

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