愛知県稲沢市在住の【中小企業診断士✖️IoTプロフェッショナルコーディネーター】が、ものづくりの楽しさをお伝えする《がちゃラボ》です。
今回はscratchというプログラミング言語を使って、「ある条件になったら」というプログラミングの基礎の考え方を学びたいと思います。第2弾です。
下記の記事では、エリアの端に着いたら戻ってくるというプログラムを組みました。キャラクターがエリアの端から端まで移動する、というプログラムで、サボテンを突き抜けて動いています。
もう少し現実に近い動きをさせるために、今回は『サボテンにぶつかったら戻ってくる』というプログラムを組みたいと思います。
使用するブロック
『端にぶつかったら戻ってくる』というプログラムが組まれている状態から、新たに次のブロックを使います。
『もしならブロック』~もし〇〇したら、という条件ブロック〜
『色に触れたブロック』~キャラクターがある色に触れたら〜
『90度に向けるブロック』~キャラクターを好きな方向に向ける~
条件を使ったプログラミングを始めていこう
条件ブロックを追加しよう
それでは条件ブロック、『もしならブロック』を追加しましょう。下記のようにブロックを追加してください。
もしならブロックは、「もし」と「なら」の間の図形にさまざまな条件を入れることで、「もし○○なら」というプログラムを作ることができます。
色を検出しよう
ではサボテンにぶつかったら、という条件を作っていきましょう。ただし絵に描いたサボテンという物体を見つけるのは難しいので、「緑色にぶつかったら」と置き換えて作ります。
では、その緑色を検出してみましょう。『色に触れたブロック』を先ほどの『もしならブロック』の「もし」「なら」の間の図形に入れてください。
次に色を決めましょう。「色に触れた」という文の左に丸い部分がありますが、ここをクリックします。すると色を選ぶ画面が出てきます。今回は実際のサボテンの色をスポイトのように吸い取りたいと思います。
するとキャラクターがいるエリアに虫メガネが出てきます。そしてその中心をサボテンの枠の濃い緑色に合わせてクリックします。
スポイトで吸い取った色は、『色に触れたブロック』に反映されます。
これで、『もし、濃い緑色(サボテンの枠)に触れた、なら』という条件を作ることができました。
サボテン(色の濃い緑色)にぶつかったら跳ね返るようにしよう
さいごに、キャラクターがサボテン(の枠の濃い緑色)にぶつかったら、跳ね返るように『90度に向けるブロック』を追加しましょう。
これでプログラムは完成です。サボテン(の枠の濃い緑色)とエリアの右端の間を、行ったり来たりするプログラムができあがりました。
サボテンで跳ね返るか!?
さて、それではプログラムを実行してみましょう。実行するとサボテンの位置まで移動し、サボテンにぶつかると反転して戻ってきます。
さいごに
今回は色を検出して動きを変える、というプログラムを作りました。応用としては、壁にぶつかったらとか、水に落ちたら、みたいなプログラムが作れるかなと思います。色々と挑戦してみましょう。
コメント