提供: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」で指定したクローンのもつ真偽が取得できるようになる。