言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

Techo を Tweak で実装

なにか手軽な課題は無いかなと思って、Techo を Tweak で実装 してみた。イベント伝播や更新の仕組みが全然違って思ったより面倒だったが、何とか使える物が出来た。作戦としては、CTecho という ラッパークラスを作って、Tweak の世界と Morphic (というかMVC) の世界を繋げる。Morphic と MVC の違いはガワが違うだけで同じモデルを共有できたが、Tweak では同じモデルを使えない。Tweak 内でのクラスブラウザ等は、最初からあるブラウザをコピーして作り変えた物だ。なんだか嫌な感じだが仕方がない。

ここで、Tweak の新しいイベントモデルの仕組みを解説したい所だが、まだ何となくしか分かってないので上手く書けない。Morphic/MVC では、更新したときに実行して欲しいメッセージを GUI に登録する形だったが、Tweak では投げられるイベント名(決まっている)を基にアノテーションで受けて実行するという形だ。つまりイベントとメッセージの関係を記述するのに、Morpic/MVC では GUI 部品のイニシャライザで決定するが、Tweak ではこないだ書いたみたいにアノテーションとして記述する。

もう一つ分かりにくいのが、GUI 部品とモデルの違いがイマイチ曖昧な事。慣れれば分かってくるのだろうが、GUI 部品のような物はあるのだが、それもモデルと同じ CPlayer から派生していて、見分けが付きにくい(コスチュームもまたプレイヤであるという再帰構造になっている)。まだまだ勉強が足りない。