[View] [Edit] [Attachments] [History] [Home] [Changes] [Search] [Help]
タイルスクリプティング豆ちしき
まず何といってもお勧めは Squeaking Squab です。
ものすごい情報量!ここを見て覚えたことや、自分で再発見したちょっとうれしいメモを書きます。
bindingOf: の不思議
言語ゲームレポート にも少し書いているのですが、外界のモルフとやり取りするために、bindingOf: という仕組みを利用しています。これはめちゃくちゃ面白い機能で、Squeak の変数機能をハッキング出来ると言うものです。ちょっとどういう風に書けばいいのか分からないので概要だけ書きます。
- Compiler>>evaluate:notifying:logged: でコンパイルするとき、コンパイル時にある変数が見つからないと、notifying: で指定したインスタンスの bindingOf: メソッドが呼ばれる。
- bindingOf: では 名前 -> 値 のAssociation を返してやると、それがあたかも変数のように扱われる。
タイルスクリプティングの主語(sender)はどうやって指定しているのか?
たとえば、
Ellipse | make sound | croak
と言ったスクリプトのソースを表示させると、自分の所では
self beep: 'croak'
となり、他のモルフのスクリプトの中では
Ellipse beep: 'croak'
となります。これは非常に不思議です。
1) Ellipse という変数はどこから生まれてくるのか?
Player クラスの References というプール変数に入ってます。(プール変数って何だろう???)
2) 自分の所と他のところをどうやって見分けているのか?
TileMorph>>storeCodeOn:indent:
TileMorph>>playerBearingCode
Morph>>topEditor
と、順番に辿っていくと分かります。 -- 2003-01-12
Link to this Page
- SqueakTips last edited on 9 November 2004 at 5:00:48 pm by 192.168.0.8