welcome: please sign in
location: "etoys1つのスクリプトで考える"の差分
1と10のリビジョン間の差分 (その間の編集: 9回)
2012-04-25 01:54:31時点のリビジョン1
サイズ: 44
編集者: masahiko
コメント:
2012-04-27 00:44:04時点のリビジョン10
サイズ: 3732
編集者: masahiko
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 2: 行 2:
動作のタイルを引き出してならべることで、スクリプトをつくることができました。

スクリプトを簡単に作ることができるのですが、
たくさんのスクリプトが同時に(チクタクで)動いていると
どのように動作しているのかわかりにくくなってしまいます。

ここでは'''1つのスクリプト'''だけを使った動作を考えてみましょう。

1つのもの(オブジェクト)について1つのスクリプトで考えましょう。
 . ものがいくつかあるときは、それぞれに1つです。
 . もちろん動かないオブジェクトにはスクリプトは不要です。
----
=== 条件を含まないスクリプト ===
動作を表すタイルを並べて作ります。
 * 進める
   . 指定量だけ進みます
 * 回す
   . 指定角度だけ回転します
 * はねかえる
   . ウインドウの端にぶつかったとき向きを変える指定です
 * 以下の方向に向く
   . 指定したオブジェクトの方を向きます
1回の実行ごとに、並べた順に実行されます。

==== 例 ====
3つの命令(タイル)を並べました。
 . {{attachment:script101.png}}
1回実行すると
 1. いぬを5進める
 1. いぬを5度回す
 1. 端にぶつかったら向きを変える
の順に行われます。

チクタクにすると、それが1秒間に8回行われます。
----
=== 全体が1つのテストタイルのスクリプト ===
スクリプトの中にテストタイルを1つ配置し
 * テストの右に条件を
 * 条件が成り立つときの処理をはいの右に
 * 条件が成り立たないときの処理をいいえの右に
書きます。

'''注意'''
 * '''条件'''は必ず記入すること
 * '''はい'''または'''いいえ'''の少なくとも一方は記入すること

'''条件'''には
「以下のモーフが次のものと重なっているか」
を使いましょう。

 . '''ドット'''の部分に相手の'''名前'''を入れて使います。

次のように実行されます。
 * 指定した相手と重なったときには'''はい'''の右に書いた動作が行われます。
 * ぶつかっていないときには'''いいえ'''の右に書いた動作が行われます。

==== 例 ====
 . {{attachment:script102.png}}
次のように実行されます。
 * いぬが'''おやつ'''と重なったときは
  . いぬを5進め
  . いぬを5度回します
 * いぬが'''おやつ'''と重なっていないときは
  . いぬを10進めます

----
=== 動作のタイルとテストタイルを並べたスクリプト ===
順に並べられたタイルはその順に実行されます。

テストタイルがあるとそこでは条件判定が行われ、
'''はい'''か'''いいえ'''のどちらかの処理が実行されます。

==== 例 ====
 . {{attachment:script103.png}}
次のように実行されます。
 1. いぬを5進めます
 1. 端にぶつかったら向きを変えます
 1. いぬが'''おやつ'''と重なったときは
  . いぬを5度回します

いぬが'''おやつ'''と重ならなかったときは
 1. いぬを5進めます
 1. 端にぶつかったら向きを変えます
だけが行われることになります。

----
=== 応用 ===
上記の考え方を組み合わせて使うことができます。

==== 例 ====
テストタイルを2つ使った例です。
 . {{attachment:script104.png}}
どのような動きになるか考えましょう。

1つのスクリプトで考える

動作のタイルを引き出してならべることで、スクリプトをつくることができました。

スクリプトを簡単に作ることができるのですが、 たくさんのスクリプトが同時に(チクタクで)動いていると どのように動作しているのかわかりにくくなってしまいます。

ここでは1つのスクリプトだけを使った動作を考えてみましょう。

1つのもの(オブジェクト)について1つのスクリプトで考えましょう。

  • ものがいくつかあるときは、それぞれに1つです。
  • もちろん動かないオブジェクトにはスクリプトは不要です。


条件を含まないスクリプト

動作を表すタイルを並べて作ります。

  • 進める
    • 指定量だけ進みます
  • 回す
    • 指定角度だけ回転します
  • はねかえる
    • ウインドウの端にぶつかったとき向きを変える指定です
  • 以下の方向に向く
    • 指定したオブジェクトの方を向きます

1回の実行ごとに、並べた順に実行されます。

3つの命令(タイル)を並べました。

  • script101.png

1回実行すると

  1. いぬを5進める
  2. いぬを5度回す
  3. 端にぶつかったら向きを変える

の順に行われます。

チクタクにすると、それが1秒間に8回行われます。


全体が1つのテストタイルのスクリプト

スクリプトの中にテストタイルを1つ配置し

  • テストの右に条件を
  • 条件が成り立つときの処理をはいの右に
  • 条件が成り立たないときの処理をいいえの右に

書きます。

注意

  • 条件は必ず記入すること

  • はいまたはいいえの少なくとも一方は記入すること

条件には 「以下のモーフが次のものと重なっているか」 を使いましょう。

  • ドットの部分に相手の名前を入れて使います。

次のように実行されます。

  • 指定した相手と重なったときにははいの右に書いた動作が行われます。

  • ぶつかっていないときにはいいえの右に書いた動作が行われます。

  • script102.png

次のように実行されます。

  • いぬがおやつと重なったときは

    • いぬを5進め
    • いぬを5度回します
  • いぬがおやつと重なっていないときは

    • いぬを10進めます


動作のタイルとテストタイルを並べたスクリプト

順に並べられたタイルはその順に実行されます。

テストタイルがあるとそこでは条件判定が行われ、 はいいいえのどちらかの処理が実行されます。

  • script103.png

次のように実行されます。

  1. いぬを5進めます
  2. 端にぶつかったら向きを変えます
  3. いぬがおやつと重なったときは

    • いぬを5度回します

いぬがおやつと重ならなかったときは

  1. いぬを5進めます
  2. 端にぶつかったら向きを変えます

だけが行われることになります。


応用

上記の考え方を組み合わせて使うことができます。

テストタイルを2つ使った例です。

  • script104.png

どのような動きになるか考えましょう。

etoys1つのスクリプトで考える (最終更新日時 2012-04-27 00:44:04 更新者 masahiko)