welcome: please sign in
location: "etoysはみ出ないように動く"の差分
6と7のリビジョン間の差分
2012-07-03 03:02:24時点のリビジョン6
サイズ: 2210
編集者: masahiko
コメント:
2012-07-03 03:31:55時点のリビジョン7
サイズ: 2940
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 36: 行 36:
の色にぶつかったら反対向きに進みます。 ふちの色にぶつかったら反対向きに進みます。
行 48: 行 48:
進める部分を1色で塗っています。
行 49: 行 50:
センサーが触れているのが進める部分の色かどうか判定し
'''いいえ'''のとき向きを変えています。
行 50: 行 53:
パターン1とほぼ同じですが、
花の絵の部分に進めるかどうかが異なります。
行 54: 行 59:
センサーを2つ描きます。
 . このオブジェクトに使われていない色にすること
 . 進む方向の左右の先につけること
行 55: 行 64:
動かしたい範囲の周りを、1色で囲みました。
行 56: 行 66:
ふちの色にぶつかったときの処理を
 . 右のセンサーが当たったら左へ10度曲がる
 . 左のセンサーが当たったら右へ10度曲がる
とした例です。

はみ出ないように動く

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

  • 自動車をコースにそって走らせたり、 魚が池から出ないように動かしたりする

ものがあります。

スクリプトでは

  • オブジェクトの前側にセンサーとなるものを設定し
  • センサーにどの色が触れたかで進む方向を調整

します。


分類

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

センサーの個数

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

判定に用いる色

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

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


パターン1

  • センサー1つ
  • 進めない部分の色を指定

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

  • このオブジェクトに使われていない色にすること
  • 進む方向の先につけること

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

  • car11.png

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

  • car21.png

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

  • car22.png

意味は

  • センサーの部分が茶色のところに触れたときは
    • およそ180度回転する

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


パターン2

  • センサー1つ
  • 進める部分の色を指定

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

  • car12.png

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

  • car13.png

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


パターン3

  • センサー2つ
  • 進めない部分の色を指定

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

  • このオブジェクトに使われていない色にすること
  • 進む方向の左右の先につけること

  • car31.png

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

  • car32.png

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

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

とした例です。

  • car33.png


パターン4

  • センサー2つ
  • 進める部分の色を指定
  • car41.png

  • car42.png

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