etoysはみ出ないように動く

はみ出ないように動く

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

ものがあります。

スクリプトでは

します。


分類

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

センサーの個数

  1. 前方に1つのセンサーを用いる
  2. 前方の左右、あわせて2つのセンサーを用いる

判定に用いる色

  1. 進めない部分の色を1つ指定する。
  2. 進める部分の色を1つ指定する。

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


パターン1

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

例(矢印で示した水色の部分)

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

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

意味は

乱数(40)は1~40の間の値を取るので 自動車を回すに用いる値は 161~200 のどれかになります。


パターン2

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

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

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


パターン3

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

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

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

とした例です。

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

パターン1,2を参考にして乱数を加えるとよいでしょう。


パターン4

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

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

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

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

etoysはみ出ないように動く (最終更新日時 2012-07-06 00:31:47 更新者 masahiko)