## page was renamed from etoys属性と条件
== 属性を条件に利用する ==
これまでは'''重なっているか'''という判定を主につかってきました。

属性の値を使うと細かな条件判定を行うことができます。

属性もたくさんありますが、座標を使った条件について説明します。

数値で表されている他の属性も
同様の考え方で条件に使えるはずです。

例えば、
幾何のカテゴリには次のような属性があります。
 . {{attachment:jouken19.png}}

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

 . ビューアでx座標の項目を表示し、項目名のところをつかんで引き出すとこのようになります。
 . {{attachment:jouken10.png}}
 . 属性値を設定するときは、矢印のところをつかんで引き出しましたが、今回はつかむところが異なります。
 . このタイルは条件(テスト)の場所や、計算式の一部分に配置することができます。
==== 例1 ====
 . x座標のタイルをテストの場所に配置し、数値を修正しました。
 . {{attachment:jouken11.png}}
 . いぬのx座標が200より小さいとき条件が成り立ちます。
  . '''はい'''の右に命令を記入すれば、条件が成り立つとき実行されます。
  . '''いいえ'''の右に命令を記入すれば、条件が成り立たないとき実行されます。
 . <<BR>>
 . Etoysの座標はこのようになっています。
  . {{attachment:zahyo02.png}}
 . いぬが色の付いた範囲内にあるとき、例1の条件が成り立ちます。
  . {{attachment:jouken15.png}}
----
=== 複数の条件 ===
ある範囲内にあるという条件の書き方。
==== 例2 ====
 . '''x座標が200より小さい'''
 . '''y座標が300より小さい'''
 . の2つの条件が成り立つ場合に対応します。
  . {{attachment:jouken16.png}}
 . テストタイルを2つ組み合わせて使います。
 . 1つ目のテストに'''x座標が200より小さい'''という条件を書き、
 . 1つ目のテストタイルの'''はい'''のところに2つ目のテストタイルを配置します。
 . 1つ目のテストに'''y座標が300より小さい'''という条件を書きます。
  . {{attachment:jouken17.png}}
 . 1つ目のテストが成り立つとき、対応する'''はい'''の部分が実行されます。
 . ここにもテストがあるので、さらに条件判定が行われ
 . 2つ目のテストも成り立つとき、赤で示した部分に書かれた処理が行われます。
==== 例3 ====
x座標が400から500の間にある、の場合も2つのテストを使って表します。
 . '''x座標が400より大きい'''
 . '''x座標が500より小さい'''
----
=== 例4 ===
犬と青い丸の横方向の位置(X座標)が近いという条件の書き方。
 . 犬にも丸にも大きさがありますが、中心座標で判定するものとします。
 . 上下位置(Y座標)は条件に含まないことにします。(上下どこでもよい)
  . {{attachment:jouken07.png}}
 . X座標の差が20より小さいとすると条件は
  . '''いぬのx座標 - 青い丸のx座標 < 20'''
  . '''いぬのx座標 - 青い丸のx座標 > -20'''
 . の2つになります。
上の例のように2つのテストタイルを使ってもできますが、関数を使って1つの条件で書くことができます。
 . 絶対値 '''| |''' を使うと1つの式に書けます。
  . '''|いぬのx座標 - 青い丸のx座標| < 20'''
 . 絶対値をとる関数は '''abs( )''' です。
  . '''abs(いぬのx座標 - 青い丸のx座標) < 20'''
 . という式を作ります。
次のような形の式を作り、赤で示した2つの数の部分に、いぬのx座標 と 青い丸のx座標 を入れます。
  . {{attachment:jouken13.png}}
このようになります。演算と数値を修正します。
  . {{attachment:jouken14.png}}
----
=== 条件の考え方 ===

そのオブジェクトの位置を判定するには
 . x座標
 . y座標
と数値を比較する。

2つのオブジェクトの位置関係をみるには、2つのオブジェクトの
 . x座標とx座標
 . y座標とy座標
を比較する。

2つのオブジェクトの距離をみるには、
観察カテゴリにある
 . タートルへの距離
を使う。