最近、ライントレースについて考える機会があったので、以前行ったScratchでのライントレースについて書き残しておこうと思います。

 

プログラミング教室で実施した内容についてはこちら。

https://ameblo.jp/gameprograming/entry-12564892637.html

 

プログラムの詳細については触れていなかったので、今回は参考になりそうな形で残せればと思います。

 

 

教室ではオフライン版のScratch2を使っているので、今回もScratch2をベースに作っています

Scratch3でも画面の構成が少し違うだけで、機能としては同じものができます。

 

 

1.何か適当なスプライトを作成します。

  大きすぎないものを描いてください

  今回は小さい四角形を描きました。

  ネコは使わないので消してもOKです。

 

 

2.背景にライントレースのコースを描きます。

  右下のボタンで「ベクターモード」にして「円」を描きます。

  線の太さは左下のバーで調整できますので、一番太い状態にしてください。

 

 

3.円の中と外を色で塗りつぶします。

  中と外は異なる色で塗ってください

  円の外側はベクターモードだと塗れなかったので、ビットマップモードに戻して塗ってください

  先ほど描いたスプライトは、コースの幅に収まるよう調整してください。

 

 

これで下準備は完了です。

あとはプログラムを作っていくだけ。

 

考え方としては、スプライトをずっと動かし続け、外の色に当たったら内側に回転させ、内側の色に当たったら外側に回転させる、というものです。

右回りでも左回りでも、好きな方向でやってもらえればOKです。

 

 

サンプルプログラムは、こんな感じでしょうか。

 

 

初めの初期位置の座標(x, y)は、自分の絵に合わせて設定してください。

プログラムの数値も、動かしながら最適なものに調整していきます。

今回の数値はやや適当な感じですが、それなりに動いてくれたので良しとします。

 

 

それでは、動画で確認してみましょう!

 

 

まぁまぁ、って感じですね。

 

スプライトの大きさが、ラインの幅ギリギリのほうが結構スムーズに動く印象です。

あとは、〇より□のほうが良い感じ。

このあたりは色々と試してみてほしいです。

 

 

次に、クローンを使ってスプライトを増殖させることもやりましたので、そちらのプログラムも紹介します。

 

考え方としては、定期的にクローンを作り、クローンされたものに対してライントレースのプログラムを適用させています。

 

 

こんな感じ。

 

 

どのように動くか、確認してみましょう!

※ブツブツが苦手な人は注意

 

 

 

 

Scratchだと、考え方だけに集中できるので良いですね。

ハードを使うとセンサの仕組みまで理解しないといけないので、その前にこれをやっておくとスムーズにできそう。

 

 

また気が向いたら、Scratchのプログラムも公開していこうと思います。

 

 

 

ちなみに、私が勉強に使った本は下記の2冊です。

できるだけ簡単なものを選びましたので、初心者にはオススメです。

「できるキッズ」のほうが簡単でした。

 

 

 

 

 

Scratch3バージョンだと、こちらになるのでしょうか。