DXRubyFrameworkと花火

花火を高速に動かすために、作ろうと思っていた機能を追加した。
基本的に腰が重いため、こういう個人的需要が無ければ何もしない。
http://dxruby.sourceforge.jp/files/dxrubyfw001alpha2-mswin32-ruby18.zip
サンプルとして花火をつけてあるが、とりあえず芯のないものだけ。
色が変わるようにしてみたものとなっている。
まあ、適当に改造してもらえれば、いろんな花火も作れるのではないかと。
基本的に作りかけなのでソースもひどいしおかしなところもあるだろうが、そもそもライブラリ側も試作なのでキニシナイ!


バージョンは0.0.1α2。
仕様が定まらないのでほとんど手付かず。
Spriteオブジェクトを、継承せずに使える仕様にするかどうかを考えている。
するはするでいいんだろうが、俺的には使い方が思いつかないのだな。
キャラクラスに内包させると、わざわざ座標を設定する必要があって2度手間だし、高速描画のために配列に入れて一気にってやろうとすると、そもそも配列にpushするんじゃなくそこでWindow.drawしたほうが速いわけで。
Spriteオブジェクトの配列をあらかじめ作っておくと、キャラオブジェクトの配列との2重管理になるし、なんだかどうにもイメージできない。
少なくとも、速度という点ではSpriteクラスを継承してキャラクラスを作る以外の選択肢は無いだろう。
全てのキャラオブジェクトをSpriteクラスというスーパークラスとして一気に統一処理するところが、速度を出すためのポイントなのだから。


速度以外を考えると、描画プリミティブとしてSpriteクラスを提供することに何の意味があるのか、という話になる。
例えば他のSpriteオブジェクトとの衝突判定や、アニメーション処理、その他Window.draw系だけではできない色々なことをする機能があれば、それらをパッケージしたものとして需要はあるのかもしれない。
要は各種機能と情報を詰め込んだ便利なImageクラスという感じになる。
そう考えた場合の問題は、SpriteクラスがImageクラスを継承したものではない、というところか。
メソッドベースのDXRubyの機能として本体に組み込むには、オブジェクト指向的なSpriteクラスは異質すぎるのだ。


まあ、一気に作れるものでもないし、いつものペースでじっくり考えるか。