Windowクラス

RGSS互換ライブラリをちょっとずつ作っているのだが、これはなかなか難しい。
画像の扱い方に対する考え方が違うから、DXRubyの機能では実現できないものが多い。
たとえばSpriteのflashやcolor、toneなど。
これらは実行時に動的に画像を修正して描画するから、DXRubyのようなテクスチャをそのまま描画する系のライブラリでは、とりあえず実装することはできない。
メソッドを呼び出したときにImageオブジェクトを生成して画像を編集すればなんとかならないこともないが、Rubyでやっていては遅いだろう。
SpriteならまだマシだがViewportにも同様の機能があるため、こっちはかなり厳しいことになりそうだ。


難しいことは後回しにして、とりあえず?って感じでWindowクラスを実装してみた。
透明度とかの指定はまだできていないが、ウィンドウの外観を描画することができるようにはなった。
中身の編集やカーソルの移動などはRGSS組み込みライブラリには無いので、RPGのコードのほうで書かれているのだろう。
そこまではサポートできない。

ウィンドウスキンはこちらの仮)ツクールライフさまからいただいてみた。
http://cacaosoft.blog42.fc2.com/?no=16

require 'dxrubyrgss'

window = Window.new
window.windowskin = Bitmap.new("Window002.png")

contents = Bitmap.new(200,200)
contents.draw_text(10, 10, 200, 200, "がおー")

window.x = 100
window.y = 100
window.width = 200
window.height = 200
window.contents = contents

loop do
  Graphics.update
end