[Squeak-ja: 4477] Re: Etoysでのモーフの複製でトラブル

TAKAHASHI Makoto makoto @ kobe-u.ac.jp
2010年 7月 20日 (火) 14:38:58 JST


神戸大学の高橋です。

Etoys3 と SqueakLand2005J2 で式の計算の順序の約束が異なる
のが原因ではないでしょうか。2005J2では,演算子に関わらず右結合
で計算しますが,Etoys3ではそれが通常の計算規約(足し算より
かけ算の方が結合の強さが大きいなど)に変更されています。
2005J2で作られた作品のスクリプトは,Etoys3でも2005J2での順序を
尊重して実行されるが,そこで複製したオブジェクトのスクリプトは
Etoys3での規則で計算されてしまうようです。
井上さんのsolarsysytemのプロジェクトのスクリプトに質量をgmrの
3乗で割る部分がありますが,ここがそのように計算されていないために
他の変数が巨大な値をとってしまいフリーズしているように思います。

複製ではなく兄弟を作るともとのスクリプトを共有するためそのまま
でも動くようです。

変数が多い場合やスクリプトが巨大になると全体が一度に表示できないのは
私も困っていますが,私は以下のような対処をしています。

1 変数のカテゴリのモーフを取り出して,そのy座標を動かすことで全体をみる。
2 変数のカテゴリのモーフを取り出して,その拡大率を小さくして(縮小して)
  全体をみる。

iNOUE Koich!さんの『[Squeak-ja: 4476]  Etoysでのモーフの複製でトラブル』
 (2010年7月20日 00:59:19GMT+09:00)の件について
> 東京都市大の井上です。
> 
> 最近ようやくSqueak Etoys 3.0をMacOSX10.6.4にインストールしました。そこで
> 問題が発生して困っているのですが、どなたか助言をいただけないでしょうか。
> 問題とは、以下のプロジェクトでモーフを複製すると、その後フリーズしてしま
> うというものです。今まで以前のSqueakLand2005J2で開発していて、そちらでは
> 複製してもフリーズすることなく同じ動作をしてくれました。
> http://www.ns.tcu.ac.jp/~inoue/Squeak_Seminar/solarsystem.010.pr
> 
> 具体的にはこれはeToysにおいて運動方程式をRunge-Kutta法により逐次近似で解
> かせて軌道計算させるというもので、マアマアうまく動くようになりましたので
> 惑星をもっと増やそうとして複製を試みたというところです。最初に惑星を作
> り、複製して恒星にして、惑星が恒星の周りを公転するようになるまでは
> SqueakLand2005J2でやりました。ここまでは特に問題はなかったのですが、
> Etoys3.0で惑星を複製してみたところ、全スクリプトでgoを押した途端にフリー
> ズしてしまうのです。OS自体は動いているようで、Etoysを強制終了させること
> はできました。
> 
> あと、この問題とは関係ないのですが、ビューアのカテゴリ欄で表示される項目
> が多すぎて(変数を26も使ってます。)通常サイズでは表示しきれない場合、全
> 部見る方法はあるのでしょうか。


Squeak-ja メーリングリストの案内