確認してみよう。
t1 = Turtle ! create. t2 = t1 ! create. t2 ! penup 200 forward. btn1 = Button ! "No.1" create. btn2 = Button ! "No.2" create. btn1:action = [ t1 ! (l1) xcircle]. btn2:action = [ t2 ! (l2) xcircle]. l1 = Label ! "***********" create. l2 = Label ! "***********" create. t1:xcircle = [ | myLabel | myLabel ! "draing..." set. [ self ! 1 forward 1 rightturn. ] ! 360000 repeat. myLabel ! "done" set. ].
Turtle とボタンを2つ用意して、各ボタンでそれぞれのTurtleが動き出すようにする。
円を描画する操作が割とあっという間に終わってしまうので、過酷ではあるが1000回転ほど回ってもらうことにする。
ちなみに、xcircle命令はt1にしか定義していないが、t1 は t2 の親オブジェクト(プロトタイプ)なのでt2側でもこのxcircle命令を使うことができる。
最初のボタンを押して第一Turtleが回転開始後、すかさず2番目のボタンを押す。
過酷すぎたのか描画にノイズが乗ってしまった。
でも、アクション実行中にも他アクションの実行を受け付け、かつ、複数のアクションが同時に実行されていることが分かった。
だからやってみなくちゃわからない。
0 件のコメント:
コメントを投稿