サイズ: 1885
コメント:
|
サイズ: 3670
コメント:
|
削除された箇所はこのように表示されます。 | 追加された箇所はこのように表示されます。 |
行 20: | 行 20: |
. いぬのx座標が200より小さいとき'''はい'''の右の命令(記入されていません)が行われ、 . それ以外のとき'''いいえ'''の右の命令(記入されていません)が行われます。 |
. いぬのx座標が200より小さいとき'''はい'''の右の命令(記入されていません)が行われ、 . それ以外のとき'''いいえ'''の右の命令(記入されていません)が行われます。 . <<BR>> |
行 24: | 行 25: |
. したがって例1の条件が成り立つのは、色の付いた部分にあるときです。 . {{attachment:jouken15.png}} . {{attachment:jouken05.png}} . {{attachment:jouken06.png}} . {{attachment:jouken07.png}} |
. いぬが色の付いた範囲内にあるとき、例1の条件が成り立ちます。 . {{attachment:jouken15.png}} ---- === 複数の条件 === 図の範囲内の条件を考えます。 . x座標が200より小さい . y座標が300より小さい . の2つの条件が成り立つ場合に対応します。 . {{attachment:jouken16.png}} . テストタイルを2つ組み合わせて使います。 . 1つ目のテストに「x座標が200より小さい」という条件を書き、 . 1つ目のテストタイルの'''はい'''のところに2つ目のテストタイルを配置します。 . 1つ目のテストに「y座標が300より小さい」という条件を書きます。 . {{attachment:jouken17.png}} . 1つ目のテストが成り立つとき、対応する'''はい'''の部分が実行されます。 . ここにもテストがあるので、さらに条件判定が行われ . 2つ目のテストも成り立つとき、赤で示した部分に書かれた処理が行われます。 ---- === 差による判定 === 犬と青い丸の横方向の位置(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座標の項目を表示し、項目名のところをつかんで引き出すとこのようになります。
- 属性値を設定するときは、矢印のところをつかんで引き出しましたが、今回はつかむところが異なります。
- このタイルは条件(テスト)の場所や、計算式の一部分に配置することができます。
例1
- x座標のタイルをテストの場所に配置し、数値を修正しました。
いぬのx座標が200より小さいときはいの右の命令(記入されていません)が行われ、
それ以外のときいいえの右の命令(記入されていません)が行われます。
- Etoysの座標はこのようになっています。
- いぬが色の付いた範囲内にあるとき、例1の条件が成り立ちます。
複数の条件
図の範囲内の条件を考えます。
- x座標が200より小さい
- y座標が300より小さい
- の2つの条件が成り立つ場合に対応します。
- テストタイルを2つ組み合わせて使います。
- 1つ目のテストに「x座標が200より小さい」という条件を書き、
1つ目のテストタイルのはいのところに2つ目のテストタイルを配置します。
- 1つ目のテストに「y座標が300より小さい」という条件を書きます。
1つ目のテストが成り立つとき、対応するはいの部分が実行されます。
- ここにもテストがあるので、さらに条件判定が行われ
- 2つ目のテストも成り立つとき、赤で示した部分に書かれた処理が行われます。
差による判定
犬と青い丸の横方向の位置(X座標)が近いという条件を考えます。
- 犬にも丸にも大きさがありますが、中心座標で判定するものとします。
- 上下位置(Y座標)は条件に含みません。(どこでもよい)
- X座標の差が20より小さいとすると条件は
いぬのx座標 - 青い丸のx座標 < 20
いぬのx座標 - 青い丸のx座標 > -20
- の2つになります。
上の例のように2つのテストタイルを使ってもできますが、関数を使って1つの条件で書くことができます。
- 絶対値 | | を使うと1つの式に書けます。
|いぬのx座標 - 青い丸のx座標| < 20
- 絶対値をとる関数は abs( ) です。
次のような手順で配置できます。