プログラミング教室MYLABでは、スクラッチについての質問についてお答えしています。
ご質問がある方は、こちらのフォームから質問内容を送信して下さい。
さて、今回頂いたのは、以下のご質問です。
クローンのプログラム内で変数の値を変更しても変更が反映されません。又、リストへの変更も効きません。
プロジェクトのURLがわからないので、ご質問の内容に正しくお答えできているかわかりませんが、下記のようなコードで、クローンのプログラム内で変数の値を変更したり、リストの値を置きかえたりすることができます。
実際に動かしてみると、下の図のようになります。
https://scratch.mit.edu/projects/783520227/
「すべてのスプライト用」の変数と、「このスプライトのみ」の変数で、動きがかわる。
「すべてのスプライト用」で作った変数と、「このプスライトのみ」で作った変数で、動きがかわるので、少し注意が必要です。
「すべてのスプライト用」で作った変数は、どのクローンから変数の値を変更しても変数は同じ値になりますが、「このスプライトのみ」で作った変数はクローンごとに変数は違う値になります。
下の図は、紫の丸にふれると、変数の値が減っていくプロジェクトです。実際に動かしてみると、変数の作り方によって値の減り方が違うことがわかると思います。
「すべてのスプライト用」で変数を作った場合
https://scratch.mit.edu/projects/783520227/
「このスプライトのみ」で変数を作った場合
https://scratch.mit.edu/projects/783518247/
例えば、シューティングゲームで敵キャラをクローンでつくって、それぞれにHPをもたせたいことがあるでしょう。そうした場合は、「このスプライトのみ」で変数をつくっておくと、クローンごとに違ったHPの値を持つことができます。
今回の回答は、以上となります。