スプライトの座標情報

カニがネコのx座標の情報を持っていますが、
さて、どっちのネコの情報を持っているのでしょう?

2匹のネコとカニの画像

カニの持っている情報は、調べるブロックの”ネコのx座標です。

 

自分の情報を他のスプライトに伝える

スプライトの持つ自分のそれぞれの情報(座標やコスチューム名など)
を他のスプライトとどのように共有できるのか?

また、それを他のスプライトにどう伝える事ができるのかについて、一部をご紹介したいと思います。

オリジナルの情報を他のスプライトに伝える

オリジナルのネコのコスチューム名:ハートネコ
クローンのネコのコスチューム名:クローンネコ

次のスクリプトにあるように、
カニネコのコスチューム名とX座標を言わせるようにしています。
そして、ネコへ行くという命令をしています。

カニのスクリプトの画像

カニが情報を話す画像

カニが持っている情報は、オリジナルのネコのものですね。
そして、ネコが見えていなくても、見えないネコを追いかけている事がわかります。

そら先生そら先生

クローンを作る時に、オリジナルのスプライトを隠す事が多いよね。
そんな時でも、他のスプライトは隠れたオリジナルスプライトのところに行くことを覚えておいてね

クローンの情報を他のスプライトに伝える

3体のネコのクローンが、それぞれリンゴを投げるようにプログラムしています。
そして、リンゴがネコのクローンの場所に行くようになっています。

どのようにして、クローンのネコのX座標とY座標を
リンゴに伝えたら良いでしょうか?

ネコがリンゴを投げる図

 

ネコのスクリプトは次のとおりです。
変数を使ってクローンネコのX座標とY座標を伝えられるようにしています。

ネコのスクリプト

リンゴのスクリプトは次のとおりです。
ネコからもらったグローバル変数のXとYをリンゴの座標にしています

3匹のネコがリンゴのクローンを作る時にその時の自分の座標情報を伝えています。
グローバル変数は常に一つの情報しか持てないので、情報を伝えるタイミングが一致している事が大事です。
リンゴのスクリプト

生徒さんB生徒さんB

なるほど、それぞれのネコの場所からリンゴがでてきてます

生徒さんB生徒さんB

ネコが出てきたり消えたりしてるのは、どうしてですか?

そら先生そら先生

ネコのスクリプトに”隠す”と”表示する”を乱数を条件としていれてるからだね

そら先生そら先生

これまでの説明にもあったように、ネコのスプライトが隠れていてもリンゴを投げているのもわかるかな?