最近、ライントレースについて考える機会があったので、以前行ったScratchでのライントレースについて書き残しておこうと思います。
プログラミング教室で実施した内容についてはこちら。
https://ameblo.jp/gameprograming/entry-12564892637.html
プログラムの詳細については触れていなかったので、今回は参考になりそうな形で残せればと思います。
教室ではオフライン版のScratch2を使っているので、今回もScratch2をベースに作っています。
Scratch3でも画面の構成が少し違うだけで、機能としては同じものができます。
1.何か適当なスプライトを作成します。
大きすぎないものを描いてください。
今回は小さい四角形を描きました。
ネコは使わないので消してもOKです。
2.背景にライントレースのコースを描きます。
右下のボタンで「ベクターモード」にして「円」を描きます。
線の太さは左下のバーで調整できますので、一番太い状態にしてください。
3.円の中と外を色で塗りつぶします。
中と外は異なる色で塗ってください。
円の外側はベクターモードだと塗れなかったので、ビットマップモードに戻して塗ってください。
先ほど描いたスプライトは、コースの幅に収まるよう調整してください。
これで下準備は完了です。
あとはプログラムを作っていくだけ。
考え方としては、スプライトをずっと動かし続け、外の色に当たったら内側に回転させ、内側の色に当たったら外側に回転させる、というものです。
右回りでも左回りでも、好きな方向でやってもらえればOKです。
サンプルプログラムは、こんな感じでしょうか。
初めの初期位置の座標(x, y)は、自分の絵に合わせて設定してください。
プログラムの数値も、動かしながら最適なものに調整していきます。
今回の数値はやや適当な感じですが、それなりに動いてくれたので良しとします。
それでは、動画で確認してみましょう!
まぁまぁ、って感じですね。
スプライトの大きさが、ラインの幅ギリギリのほうが結構スムーズに動く印象です。
あとは、〇より□のほうが良い感じ。
このあたりは色々と試してみてほしいです。
次に、クローンを使ってスプライトを増殖させることもやりましたので、そちらのプログラムも紹介します。
考え方としては、定期的にクローンを作り、クローンされたものに対してライントレースのプログラムを適用させています。
こんな感じ。
どのように動くか、確認してみましょう!
※ブツブツが苦手な人は注意
Scratchだと、考え方だけに集中できるので良いですね。
ハードを使うとセンサの仕組みまで理解しないといけないので、その前にこれをやっておくとスムーズにできそう。
また気が向いたら、Scratchのプログラムも公開していこうと思います。
ちなみに、私が勉強に使った本は下記の2冊です。
できるだけ簡単なものを選びましたので、初心者にはオススメです。
「できるキッズ」のほうが簡単でした。
Scratch3バージョンだと、こちらになるのでしょうか。