welcome: please sign in
location: "etoys属性の値を使って動かす"の差分
8と9のリビジョン間の差分
2012-06-02 12:01:42時点のリビジョン8
サイズ: 2132
編集者: masahiko
コメント:
2012-06-02 12:14:32時点のリビジョン9
サイズ: 3211
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 40: 行 40:
=== 他のオブジェクトの属性値を使 === === 他のオブジェクトの属性値を使って設定する ===
行 51: 行 51:
=== 自分の属性値を使って更新する ===
ほかのオブジェクトではなく、自分自身の属性値をつかって
上と同じことを記述したスクリプトです。

ひつじのx座標に、ひつじのx座標の値に10を加えた値を代入しています。
行 52: 行 57:
例えば
 . ひつじのx座標が300のときこのスクリプトを1回実行すると、
 . そのときのx座標の値300に10を加えた値が計算され
 . 300+10 = 310
 . 310がひつじのx座標の新しい値として代入されます。
この結果、
ひつじのx座標の値は310になり、ひつじは右に10だけ移動します。

計算式をつかって属性値を増やすことで移動できます。

計算式をつかって属性値を増やす書き方はプログラミングでは
しばしば使われます。

etoysではこのような簡単な書き方もできます。
行 53: 行 72:
もちろんy方向の移動も可能です。
行 54: 行 74:
両方の移動を行えば斜めに進みます。

属性の値を使って動かす

進むや回すを使わないで動かすこともできます。

属性の値を修正することで動かします。


属性とその値

ビューアで間に viewer12.png がある行は オブジェクトの属性を表す項目です。

  • 矢印の左側は属性名。
  • 矢印の右側は属性の現在の値です。

この例では

  • hituji00.png

ひつじの属性として、

  • x座標
  • y座標
  • 向き

があり、

  • x座標の値は 585

です。

オブジェクトを移動するとx座標、y座標の値が変わります。

x座標、y座標の値を指定するとオブジェクトが移動します。


位置を指定する

ビューアから viewer12.png の部分から引き出すと 属性の値を指定するスクリプトを作ることができます。

x座標を 500 に設定するスクリプトです。

  • hituji01.png

これを(1回)実行すると、ひつじはx座標が500の位置に移動します。

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

  • zahyo02.png

  • 左下が原点(x=0,y=0)です。
  • 右端のxの値、上端のyの値は画面サイズにより異なります。


他のオブジェクトの属性値を使って設定する

ひつじのx座標に、いぬのx座標の値を代入するスクリプトです。

  • hituji02.png

  • 実行すると、ひつじのx方向(横方向)の位置がいぬと同じになります。
  • チクタクで動作させておき、いぬを動かしてみるとよくわかります。

計算式を使って ひつじのx座標に、いぬのx座標の値に50を加えた値を代入するスクリプトです。

  • hituji03.png

  • 実行すると、ひつじのx方向(横方向)の位置がいぬより50だけ右になります。


自分の属性値を使って更新する

ほかのオブジェクトではなく、自分自身の属性値をつかって 上と同じことを記述したスクリプトです。

ひつじのx座標に、ひつじのx座標の値に10を加えた値を代入しています。

  • hituji04.png

例えば

  • ひつじのx座標が300のときこのスクリプトを1回実行すると、
  • そのときのx座標の値300に10を加えた値が計算され
  • 300+10 = 310
  • 310がひつじのx座標の新しい値として代入されます。

この結果、 ひつじのx座標の値は310になり、ひつじは右に10だけ移動します。

計算式をつかって属性値を増やすことで移動できます。

計算式をつかって属性値を増やす書き方はプログラミングでは しばしば使われます。

etoysではこのような簡単な書き方もできます。

  • hituji05.png

もちろんy方向の移動も可能です。

  • hituji06.png

両方の移動を行えば斜めに進みます。

  • hituji07.png

etoys属性の値を使って動かす (最終更新日時 2012-06-07 13:54:28 更新者 masahiko)