見出し画像

みんなの作品「ソーシャルディスタンスチャレンジ」のプログラムを見てみよう!<後編>

本記事は2021年06月25日にLINE entry公式ブログにて掲載されたものを再掲載した記事です。

今回も引き続き「ソーシャルディスタンスチャレンジ」のプログラムを見ていきます。前回はキャラクターとキャラクターのきょりを測るブロックを使って、ブラウンとのきょりをコニーに言わせるプログラムを作りましたね。前回の記事を読んでいない人は下のリンクからアクセスして確認してください。
みんなの作品「ソーシャルディスタンスチャレンジ」のプログラムを見てみよう!<前編

今回はいよいよ下の図のようにブラウンとコニーのきょりが近づいたときに赤い円が表示され、はなれたときに消えるという信号を使った仕組みを解読していきます。

きょりが近づいたときに信号を送ろう

前回見たように「ソーシャルディスタンスチャレンジ」の「歩くコニー」には、「歩くブラウン」とのきょりが100より大きくなかったら(=100以下なら)「SD コニー1 表示」という信号を送るプログラムが設定されていました。

ここでは、コニーとブラウンのきょりが近くなっても、信号を送る以外に「歩くコニー」自身は特に何もしないことに注意してください。

しかし、実際のゲームではブラウンとのきょりが近くなるとコニーの周りに赤い円が表示されます。これは、コニーが送った「SD コニー1 表示」という信号を受け取って赤い円を表示するプログラムが、どこか別の場所にあるからです。

信号を受け取るには?

送った信号はすべてのキャラクターで受け取ることができます。ほかのキャラクターはもちろん、信号を送ったキャラクター自身が受け取っても構いません。信号を受け取るには、受け取りたいキャラクターで「制御」カテゴリーの「”信号の名前”信号を受け取った時」ブロックを使うだけです。

そしていつものプログラミングと同じように「信号を受け取った時」ブロックの下に行ないたいことのブロックを組み合わせていくだけで、連動して動くプログラムを作ることができます。

信号を受け取ったあとのプログラムを確認しよう

「ソーシャルディスタンスチャレンジ」で、コニーが送った「SD コニー1 表示」という信号はどのキャラクターが受け取っているのでしょうか? 信号を受け取っているキャラクターを見つけるには、信号を送ったあとに何が起きるかを整理してみることがコツです。
今回はブラウンとコニーのきょりが小さくなったあとに起こること、つまりコニーの周りに赤い円が表示されることですね。そのため赤い円のキャラクター「ソーシャルディスタンス コニー」のプログラムに「”SD コニー1 表示”信号を受け取った時」ブロックがある可能性が高いと考えることができます。
そこで、「ソーシャルディスタンス コニー」のキャラクターをクリックしてプログラムエリアを見てみると……予想通り「” SD コニー1 表示”信号を受け取った時」ブロックがありました!

「” SD コニー1 表示”信号を受け取った時」ブロックに組み合わされているのは「”歩くコニーの位置に移動する”」、「キャラクターを表示する」ブロックのふたつです。
「”キャラクター名”の位置に移動する」ブロックは、指定したキャラクターの座標と同じ位置に移動するというブロックです。このブロックを使うことでキャラクターを重ねて表示したり、いっしょに動かしたりすることができます。今回はコニーとブラウンのきょりが100以下ならコニーが「SD コニー1 表示」信号を送りつづけるので、コニーの動きに合わせて赤い円がついていきます。

そして「キャラクターを表示する」ブロックはキャラクターを表示することができるブロックですね。
これで、コニーとブラウンのきょりが近づいたとき(100以下になったとき)にコニーの周りに赤い円が表示される仕組みがわかりました。

では、コニーとブラウンのきょりが100よりもはなれたときに赤い円を消すのはどうやっているのでしょうか? 実は赤い円のキャラクター「ソーシャルディスタンス コニー」にはもうひとつのブロックのかたまりがありました。それはステージ開始信号を受け取ってから「キャラクターを表示しない」をずっと繰り返すというプログラムになっています。

つまり、このステージが始まってから、ずっと赤い円を消しつづけていたんですね。で、「SD コニー1 表示」信号を受け取っている間だけ赤い円を表示する。「SD コニー1 表示」信号が送られてこなくなったら、ふたたび赤い円を消しつづけることになります。

今回はここまで。
条件と信号を組み合わせて使うことで、つぎに動くプログラムを柔軟に変えることができることがわかりました。「ソーシャルディスタンスチャレンジ」には赤い円を表示させたりするだけでなく、ほかにも信号を使って動きを変えているところがたくさんあります。紹介したコツを使ってプログラムの動きを整理しながら、ぜひ連動するプログラムを解読してみてください!

この記事が気に入ったらサポートをしてみませんか?