属性を条件に利用する

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

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

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

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

例えば、 幾何のカテゴリには次のような属性があります。

座標を使う

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

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

属性値を設定するときは、矢印のところをつかんで引き出しましたが、今回はつかむところが異なります。

このタイルは条件(テスト)の場所や、計算式の一部分に配置することができます。

例１

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

いぬのx座標が200より小さいとき条件が成り立ちます。

はい の右に命令を記入すれば、条件が成り立つとき実行されます。

いいえ の右に命令を記入すれば、条件が成り立たないとき実行されます。

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

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

複数の条件

ある範囲内にあるという条件の書き方。

例２

x座標が200より小さい

y座標が300より小さい

の２つの条件が成り立つ場合に対応します。

テストタイルを２つ組み合わせて使います。

１つ目のテストにx座標が200より小さい という条件を書き、

１つ目のテストタイルのはい のところに２つ目のテストタイルを配置します。

１つ目のテストにy座標が300より小さい という条件を書きます。

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

ここにもテストがあるので、さらに条件判定が行われ

２つ目のテストも成り立つとき、赤で示した部分に書かれた処理が行われます。

例３

x座標が400から500の間にある、の場合も２つのテストを使って表します。

x座標が400より大きい

x座標が500より小さい

例４

犬と青い丸の横方向の位置(X座標)が近いという条件の書き方。

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

上下位置(Y座標)は条件に含まないことにします。(上下どこでもよい)

X座標の差が20より小さいとすると条件は

いぬのx座標 - 青い丸のx座標 <20

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

の２つになります。

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

絶対値 | | を使うと１つの式に書けます。

|いぬのx座標 - 青い丸のx座標| <20

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

abs(いぬのx座標 - 青い丸のx座標) <20

という式を作ります。

次のような形の式を作り、赤で示した２つの数の部分に、いぬのx座標 と 青い丸のx座標 を入れます。

このようになります。演算と数値を修正します。

条件の考え方

そのオブジェクトの位置を判定するには

x座標

y座標

と数値を比較する。

２つのオブジェクトの位置関係をみるには、２つのオブジェクトの

x座標とx座標

y座標とy座標

を比較する。

２つのオブジェクトの距離をみるには、 観察カテゴリにある

タートルへの距離

を使う。