今日は Rmake のマップエディタのリファクタリングを実施していました。マップエディタを作成する際、マップの描画を行わなくてはなりません。マップの描画機能は、エディタ向けの描画クラスとゲーム向けの描画クラスを準備していますが、処理内容に重複(※)が多く、明らかにコードクローンになっています。そこで、一つにまとめられないか考えていました。

※ 差分を説明すると、ゲームの場合は、キャラクタや文章表示用のウィンドウなどを描画しなくてはならず、エディタの場合はマス目ごとの設定値(例:エンカウント率など)などを描画しなくてはなりません。

結局、C# の Partial 型を使って一つにまとめました。本当は、描画パターンをコンポーネント化して、Ruby みたいに実行時に mixin したいところなんですけど。Seasar とか使えばできそうな気もしているけど、小さなアプリなのでそういう大仰なものを入れたくないとか考えたりして。

Posted by あかさた
最近のエントリ
最近の読書メモ