はみ出ないように動く

よく紹介されているスクリプトに

自動車をコースにそって走らせたり、

魚が池から出ないように動かしたりする

ものがあります。

スクリプトでは

オブジェクトの前側にセンサーに使う色で描き

その部分にどの色が触れたかで進む方向を調整

します。

分類

センサーの個数、判定に用いる色で 次のように分類できます。

センサーの個数

前方に１つのセンサーを用いる

前方の左右、あわせて２つのセンサーを用いる

判定に用いる色

進めない部分の色を１つ指定する。

進める部分の色を１つ指定する。

以上の組み合わせで４パターン考えられます。

パターン１

センサー１つ

進めない部分の色を指定

動かすオブジェクトに、センサーに使う印を描きます。

このオブジェクトに使われていない色にすること

進む方向の先につけること

例（矢印で示した水色の部分）

動かしたい範囲の周りを、１色で囲みました。 もっと複雑な形でもかまいません。
色が同じであれば、いくつかに分けて描いてもよい。

スクリプトはこのように書けます。 ふちの色にぶつかったら反対向きに進みます。

意味は

センサーの部分が茶色のところに触れたときは

およそ１８０度回転する

乱数(40)は１～４０の間の値を取るので 自動車を回すに用いる値は １６１～２００ のどれかになります。

パターン２

センサー１つ

進める部分の色を指定

進める部分を１色で塗っています。

センサーが触れているのが進める部分の色かどうか判定し いいえ のとき向きを変えています。

パターン１とほぼ同じですが、 花の絵の部分に進めるかどうかが異なります。

パターン３

センサー２つ

進めない部分の色を指定

センサーを２つ描きます。

このオブジェクトに使われていない色にすること

進む方向の左右の先につけること

例

動かしたい範囲の周りを、１色で囲みました。

ふちの色にぶつかったときの処理を

右のセンサーが当たったら左へ１０度曲がる

左のセンサーが当たったら右へ１０度曲がる

とした例です。

このままでは、 ぶつかったときにいつも同じ曲がり方をするので、 ふちの形と ぶつかりかたによっては動けなくなってしまうことがあります。

パターン１，２を参考にして乱数を加えるとよいでしょう。

パターン４

センサー２つ

進める部分の色を指定

進める部分を１色で塗っています。

センサーが触れているのが進める部分の色かどうか判定し いいえ のとき向きを変えています。 内容はパターン３と同じです。

カエルの絵の部分に進めるかどうかが パターン３の動作と異なります。

この場合も パターン１，２を参考にして乱数を加えるとよいでしょう。