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

TAKAHASHI Makoto makoto @ kobe-u.ac.jp
2010年 7月 20日 (火) 23:35:09 JST


高橋です。

フラップに入れてその複製(兄弟ではないようです)を取出すと確かに
スクリプトは正しくできていました。(コード表示で確かめました。)
同じような機能をもつモーフメーカーでもうまく動作しましたが,遊び場を
部品箱にして使う方法は単なる複製と同じでうまくいきませんでした。
これらの違いがどこにあるのかは,Etoys3の内部をご存知のかたに
解説をお願いしたいところです。

iNOUE Koich!さんの『[Squeak-ja: 4478] Re: Etoysでのモーフの複製でトラブル』
 (Tue, 20 Jul 2010 19:18:05 +0900)の件について
> 井上です。
> 
> 高橋さんどうもありがとうございます。そういう事情があったのですね。それな
> らば造り直さなくてはマズイのですが、実はその後、うまい?方法で解決できま
> したので報告します。
> 
> その方法とは、うちの息子がよくやることなのですが、モーフを部品のフラップ
> の中に入れてモーフ生成ボタンにしてしまい、なおかつそのボタンの複製を作品
> の中に取り出してしまうというものです。こういうボタンを左上に配置したプロ
> ジェクトを
> http://www.ns.tcu.ac.jp/~inoue/Squeak_Seminar/solarsystem.011.pr
> に置きましたので、見てみてください。これでなぜ演算子の優先順位の問題が解
> 決されているのかは分かりませんが(兄弟を作ることになるのでしょうか?)、
> 当初の目的である惑星をたくさん作ることはできましたので、まあいいかと思っ
> ています。(^^;
> 
> TAKAHASHI MakotoさんがTue, 20 Jul 2010 14:38:58 +0900に
> 「[Squeak-ja: 4477] Re: Etoysでのモーフの複製でトラブル」の件で:
>> 神戸大学の高橋です。
>> 
>> Etoys3 と SqueakLand2005J2 で式の計算の順序の約束が異なる
>> のが原因ではないでしょうか。2005J2では,演算子に関わらず右結合
>> で計算しますが,Etoys3ではそれが通常の計算規約(足し算より
>> かけ算の方が結合の強さが大きいなど)に変更されています。
>> 2005J2で作られた作品のスクリプトは,Etoys3でも2005J2での順序を
>> 尊重して実行されるが,そこで複製したオブジェクトのスクリプトは
>> Etoys3での規則で計算されてしまうようです。
>> 井上さんのsolarsysytemのプロジェクトのスクリプトに質量をgmrの
>> 3乗で割る部分がありますが,ここがそのように計算されていないために
>> 他の変数が巨大な値をとってしまいフリーズしているように思います。
>> 
>> 複製ではなく兄弟を作るともとのスクリプトを共有するためそのまま
>> でも動くようです。
>> 
>> 変数が多い場合やスクリプトが巨大になると全体が一度に表示できないのは
>> 私も困っていますが,私は以下のような対処をしています。
>> 
>> 1 変数のカテゴリのモーフを取り出して,そのy座標を動かすことで全体をみる。
>> 2 変数のカテゴリのモーフを取り出して,その拡大率を小さくして(縮小して)
>>   全体をみる。
> 
> 変数のカテゴリーのモーフを取り出して上下させて見る!思いつきませんでし
> た。すごい裏技ですね。Etoys3で前に比べて文字が大きめなのは子供に見やすく
> ということなんでしょうか。


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