サイログ。

~雑多な記事置き場~

Miyako2.0計画の現状

こんばんわ、コミケがあるのに、今もMiyakoのソースを弄ってるサイロスです。

Miyako2.0の修正が大体終わりました。修正が終わり次第、githubに上げていきます。
当方のgithubアドレスは以下です。現在は、まだMiyako1.5.0aのソースです。

http://github.com/cyross/

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内部でも一部使用しています)。

*1:要は、StarRubyやMyGameと同じ、「render呼び出した時に描画」方式になったわけです

*2:よく考えたら要らないや、これ

*3:MapEventの更新・描画は実装者が行う必要がある

*4:こんな感じ

*5:これにより、Miyako2.0から、拡張ライブラリのビルドに、SDLの開発ライブラリとrubysdl.hが必要になるので注意!

*6:Windowsでは、これまで通りバイナリを添付

*7:ちなみに、画面の消去はScreen.clearメソッドを呼ばないと行わないので注意