【Scratch入門〜中級編】少しだけ難しいスプライトのクローンの高度な利用法
※ 当ページには【広告/PR】を含む場合があります。
2020/09/22
2022/08/22
クローンに識別番号を割り振る
Scratchプログラミング特有のテクニックになりますが、ローカル変数を使ってクローンに識別番号を与えるテクニックを以降で説明していきます。
練習用のプログラムをScratchのオンライン版に置いておりますので、
このサンプルプログラムをスタートすると、以下の図のようになります。

コピー元である
ボタン
クローン機能はローカル変数と組み合わせることで、
まずは各クローンの番号の割り振り方を詳しくみていきます。
テスト用のスプライトを作成する
まずは適当なScratchプロジェクトを作成して、スプライトのサンプルから
ボタン
ゲームがスタートした時の初期化のブロックとして、以下のようなブロックコードを作成してみます。

開始早々にローカル変数
ばんごう_
なお、
たこ
プレイモード
ここでのポイントは、
つまりこのルールがあるので、クローンされた順番で、最初のクローンは
ばんごう_
ばんごう_
ばんごう_
ばんごう_

これがどう重要かというと、まずScratchで「変数」というと、通常は
グローバル変数はプログラム全体が共通に扱える値ですので、特定のスプライトからクローンしたときに、クローンしたスプライトだけが持つ情報としては利用できない、という性質があります。
ですが作成するプログラムによっては、クローンしたスプライトだけが使える情報として区別できないと困る場合があります。
そのために用意されているScratchの仕組みが、
ということで、Scratchプログラミングに慣れてきた人は、グローバル変数とローカル変数を意識的に使い分けてみると良いでしょう。
2つのスプライト間の当たり判定を入れる
クローンしたスプライトに、別のスプライトが触れた際に、どのクローンに衝突したかを判別するには少し工夫が必要になります。
まずは当たってくる側の
たこ

たこ
ボタン
さわった
この時、たこはどの番号のクローンに当たったかわかりませんが、とにかく
ボタン
では、
たこ
ボタン
結論としては、
ボタン

この場合、たこから
さわった
ばんごう_

識別番号ありでクローン数を増やしてみよう
先ほどまでのクローン数は3つ程度でしたが、せっかくなのでこの数を増やしてみようと思います。
クローンの数を増やしすぎると処理が重くなって動きが遅くなってしましますので、程々にして100まで増やしてみます。 同時に数百程度ならさほど重い処理にもならないと思います。
上記までのプログラムを少し手直しして、クローン数100まで増やしたプログラム(
まとめ
今回はクローンごとに識別用の番号を設定するためのローカル変数を使ったテクニックを紹介しました。
効率の良いScratchプログラミングを目指すには、今回のテクニックがかなり有効になります。
これを機会に、