提供:Japanese Scratch-Wiki
このきじは ひらがなでよめません。ごめんなさい。編集者向け:作成する
特定のクローンの情報 (プロパティ) を外部から取得したい場合は、リストとローカル変数を利用する。ローカル変数 (「このスプライトのみ」をチェックして作成した変数) の値は、そのクローン以外のスプライトやクローンから見ることができない。そのため、このような外部からクローンのもつ値を知るには、クローン側で情報をリストに格納して、外部に対し情報を公開する必要がある。
この例では、次の内容を前提としている:
(クローンの総数)
— 作成済みのクローンの数を記録するグローバル変数 (「すべてのスプライト用」をチェックした変数)(クローンID)
— クローンの作成順につけるクローンのID情報。ローカル変数 (「このスプライトのみ」をチェックした変数)。(各クローンのデータ::list)
— クローンごとに異なる値を管理するためのリスト- スプライト1 — クローンの作成元となるスプライト
次のスクリプトは、スプライト1に記述する。
@greenFlag が押されたとき [各クローンのデータ v] のすべてを削除する [クローンの総数 v]を(0)にする
このスプライト1のクローンを作成するために、次のスクリプトをスプライト1に追加する。
[] を [各クローンのデータ v]に追加する [クローンの総数 v]を(1)ずつ変える (自分自身 v) のクローンを作る
クローンに持たせるデータが文字列や数値であれば、次のスクリプトをスプライト1に追加する。
クローンされたとき [クローンID v]を(クローンの総数)にする ずっと [各クローンのデータ v]の(クローンID)番目を (...::grey) で置き換える end
これによって、([各クローンのデータ v]の(クローンID)番目)
で、「クローンID」で指定したクローンの値が取得できるようになる。
クローンに持たせる値が真偽値 (trueまたはfalse) であれば、次のスクリプトをスプライト1に追加する。
クローンされたとき [クローンID v] を (クローンの総数) にする ずっと [各クローンのデータ v]の(クローンID)番目を<...::grey> で置き換える end
これによって、<([各クローンのデータ v] の(クローンID)番目) = [true]>
で、「クローンID」で指定したクローンの真偽値が取得できるようになる。