DXRuby Advent Calendar 2014 : DXRubyの怪しげで不自然な挙動について語る

この記事はDXRuby Advent Calendar 2014の15日目です。14日目の記事はあおいたくさんの「ゲーム用GUIフレームワーク作った(作ったとは言ってない)」でした。どっちやねん。

俺もDXRubyWSというウィンドウシステムを作ってはいるのだが、ゲーム用UIにも使えるという初期の構想は開発当初に道を踏み外して以来戻ることなく全く違う方向に進んでしまっていて、コンパクトでシンプルなものがあるといいなーと思っていた。
コードを覗いてみるとSpriteUI::MouseクラスがSpriteを継承していてフレームワークのマウスオブジェクトが自身の衝突判定を持っているとか、SpriteUI::Baseクラスの描画処理に「(target or Window).draw(x, y, image)」などと書かれていたりするし、クラスやモジュールの分け方や使い方なども繊細で、RubyにもDXRubyにも精通したテクニカルかつスマートな感じになっている。非常に興味深いので、この手のものに興味がある人も無い人も見てみるとよいだろう。
今回のDXRubyAdventCalendar2014は書いたコードを公開する人の割合が多いような気がする。人のコードは勉強になるし、俺にとってもどのように使われているのかを知る貴重な情報源でもあるので、大変よいことである。と言ってもコードを出してない記事がダメって言ってるわけではない。何かしらの情報発信はよいことだし、コードの出しようがないネタもある。でもまあ、実際に動くゲームを作ってそのコードを公開することほど情報量が多いものは無いかな。って俺もそんなん出したことないわー。

さて、今回の記事は題して「DXRubyの怪しげで不自然な挙動について語る」。DXRubyを作って自分で使っていて、あれ?って思うことは意外によくあるのだが、それをなんとかしようとしてもどうにもできないということも意外によくある。この記事はそのような微妙な動作、仕様について取り上げ、一つ一つ言い訳しt、じゃなくて、原因と理由を述べてみようという趣旨である。わかってるんだけど直せないんだよね〜

続きを読む