提供: Japanese Scratch-Wiki

このきじは ひらがなのページがありません。ごめんなさい。
特定のクローンの情報 (プロパティ) を外部から取得したい場合は、リストとローカル変数を利用する。ローカル変数 (「このスプライトのみ」をチェックして作成した変数) の値は、そのクローン以外のスプライトやクローンから見ることができない。そのため、このような外部からクローンのもつ値を知るには、クローン側で情報をリストに格納して、外部に対し情報を公開する必要がある。

この例では、次の内容を前提としている:

  • (クローンの総数) — 作成済みのクローンの数を記録するグローバル変数 (「すべてのスプライト用」をチェックした変数)
  • (クローンID) — クローンの作成順につけるクローンのID情報。ローカル変数 (「このスプライトのみ」をチェックした変数)。
  • (各クローンのデータ::list) — クローンごとに異なる値を管理するためのリスト
  • スプライト1 — クローンの作成元となるスプライト

次のスクリプトは、スプライト1に記述する:

@greenFlag が押されたとき::events hat
[すべて v] 番目を [各クローンのデータ v] から削除する
[クローンの総数 v] を (0) にする

このスプライト1のクローンを作成するために、次のスクリプトをスプライト1に追加する:

[] を [各クローンのデータ v] に追加する
[クローンの総数 v] を (1) ずつ変える
[自分自身 v] のクローンを作る

クローンに持たせるデータが文字列や数値であれば、次のスクリプトをスプライト1に追加する:

クローンされたとき
[クローンID v] を (クローンの総数) にする
ずっと 
(クローンID) 番目( [各クローンのデータ v] )を (. . .) で置き換える
end

これによって、((ID) 番目( [各クローンのデータ v] ) :: list) で、「ID」で指定したクローンの値が取得できるようになる。

クローンに持たせる値が真偽値 (trueまたはfalse) であれば、次のスクリプトをスプライト1に追加する:

クローンされたとき
[クローンID v] を (クローンの総数) にする
ずっと 
(クローンID) 番目( [値の総数 v] )を <...> で置き換える
end

これによって、<((ID) 番目( [各クローンのデータ v] ) :: list) = [true]>で、「ID」で指定したクローンのもつ真偽が取得できるようになる。

関連項目