Miyako2.0計画の現状
こんばんわ、コミケがあるのに、今もMiyakoのソースを弄ってるサイロスです。
Miyako2.0の修正が大体終わりました。修正が終わり次第、githubに上げていきます。
当方のgithubアドレスは以下です。現在は、まだMiyako1.5.0aのソースです。
・Ruby1.8.7以降に対応(インストール時と実行時にバージョンチェック)
・Ruby/SDL2.0.0以降に対応(インストール時と実行時にバージョンチェック)
・dp/dp=、visible/visible=、show/hideメソッドの廃止(すべて実装者に任せる。renderメソッドで描画する形式に変更)*1
・Drawingクラスの実装(図形描画を行うクラスを用いることで、描画のタイミング判断を容易にさせる)*2
・MixinによるYukiモジュールを廃止(Yuki::Yuki2クラス→Miyako::Yukiクラスに変更)
・Partsクラス内main_partsの廃止(Partsクラスのrenderは登録順に描画されるので、再背面に描画したいパーツから登録すること。複雑なときは、renderメソッドをオーバーライドすること)
・Spriteクラスのcollisionを廃止(同期させると実装は楽だが、描画位置とコリジョン位置にずれが有るときは扱いにくいため、別々の管理の方がメリットがある)
・Viewportクラスの追加(このクラスのインスタンスをrenderすることにより、)
・Yukiの処理の単純化
・Map/FixedMap処理の単純化(実際の座標と描画上の座標のずれを分かりやすく)
・MapEventのてこ入れ(イベントIDは、Map/FixedMap単位で保持する方式に変更、実際の座標と描画上の位置のずれを分かりやすく)*3
・TextBox、Choicesの修正(選択時の画像・文字列を表示できるようにした)*4
・MiyakoTapモジュールの廃止(Ruby1.8.7準拠のため、tapメソッドが使えるようになった)
・idaten_miyakoの修正
・一部メソッドを、SDLのサーフェスを直接アクセスする方法に変更(←今ここ) *5 *6
・2.0からは、gitを使ったバージョン管理に変更する(そうなると、RubyGemsでのインストールも可能になるため)
(まだ反映していません)
・ ・・・他
これにより、今までわかりにくかった、画面への描画タイミングが分かりやすくなります(画面への描画→render/画面へのdraw_text時、見た目への反映→Screen.renderメソッド呼び出し時)。*7
また、Ruby1.9.1を見据えて、Miyako2.0からは、Ruby1.8.7以降の対応に変更しました、そのため、1.8.7以降で使える新しいメソッドが割と気安く使える様になります。(Miyako内部でも一部使用しています)。