welcome: please sign in
location: "etoys属性を条件に利用する"の差分
12と13のリビジョン間の差分
2010-06-03 12:27:48時点のリビジョン12
サイズ: 2826
編集者: masahiko
コメント:
2010-06-03 12:45:32時点のリビジョン13
サイズ: 3670
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 43: 行 43:
 . {{attachment:jouken05.png}}
 . {{attachment:jouken06.png}}
 . {{attachment:jouken07.png}}
=== 差による判定 ===
犬と青い丸の横方向の位置(X座標)が近いという条件を考えます。
 . 犬にも丸にも大きさがありますが、中心座標で判定するものとします。
  . {{attachment:jouken05.png}}
  . {{attachment:jouken06.png}}
 . 上下位置(Y座標)は条件に含みません。(どこでもよい)
  . {{attachment:jouken07.png}}
 . X座標の差が20より小さいとすると条件は
  . いぬのx座標 - 青い丸のx座標 < 20
  . いぬのx座標 - 青い丸のx座標 > -20
 . の2つになります。
上の例のように2つのテストタイルを使ってもできますが、関数を使って1つの条件で書くことができます。
 . 絶対値 | | を使うと1つの式に書けます。
  . |いぬのx座標 - 青い丸のx座標| < 20
 . 絶対値をとる関数は abs( ) です。
次のような手順で配置できます。

属性と条件

オブジェクトがある範囲内にあることを、どうやって判定したら良いでしょうか?

  • [添付]

これまでは重なっているかという判定をつかってきました。

  • [添付]

この方法では、2つのオブジェクトがちょっとでも触れていればはいとなりました。

  • [添付] [添付] [添付]


座標を使う

位置は座標で表されているので、座標の値を使って判定ができます。

  • ビューアでx座標の項目を表示し、項目名のところをつかんで引き出すとこのようになります。
  • jouken10.png

  • 属性値を設定するときは、矢印のところをつかんで引き出しましたが、今回はつかむところが異なります。
  • このタイルは条件(テスト)の場所や、計算式の一部分に配置することができます。

例1

  • x座標のタイルをテストの場所に配置し、数値を修正しました。
  • jouken11.png

  • いぬのx座標が200より小さいときはいの右の命令(記入されていません)が行われ、

  • それ以外のときいいえの右の命令(記入されていません)が行われます。


  • Etoysの座標はこのようになっています。
    • zahyo02.png

  • いぬが色の付いた範囲内にあるとき、例1の条件が成り立ちます。
    • jouken15.png


複数の条件

図の範囲内の条件を考えます。

  • x座標が200より小さい
  • y座標が300より小さい
  • の2つの条件が成り立つ場合に対応します。
    • jouken16.png

  • テストタイルを2つ組み合わせて使います。
  • 1つ目のテストに「x座標が200より小さい」という条件を書き、
  • 1つ目のテストタイルのはいのところに2つ目のテストタイルを配置します。

  • 1つ目のテストに「y座標が300より小さい」という条件を書きます。
    • jouken17.png

  • 1つ目のテストが成り立つとき、対応するはいの部分が実行されます。

  • ここにもテストがあるので、さらに条件判定が行われ
  • 2つ目のテストも成り立つとき、赤で示した部分に書かれた処理が行われます。


差による判定

犬と青い丸の横方向の位置(X座標)が近いという条件を考えます。

  • 犬にも丸にも大きさがありますが、中心座標で判定するものとします。
    • [添付]

    • [添付]

  • 上下位置(Y座標)は条件に含みません。(どこでもよい)
    • jouken07.png

  • X座標の差が20より小さいとすると条件は
    • いぬのx座標 - 青い丸のx座標 < 20

    • いぬのx座標 - 青い丸のx座標 > -20

  • の2つになります。

上の例のように2つのテストタイルを使ってもできますが、関数を使って1つの条件で書くことができます。

  • 絶対値 | | を使うと1つの式に書けます。
    • |いぬのx座標 - 青い丸のx座標| < 20

  • 絶対値をとる関数は abs( ) です。

次のような手順で配置できます。

  • [添付]

  • [添付]

  • jouken13.png

  • jouken14.png

etoys属性を条件に利用する (最終更新日時 2011-05-19 07:54:00 更新者 masahiko)