DXRubyリファレンスマニュアル刷新計画
メソッド関連の説明がいい加減なので、詳細な解説を書いてやろうかと考えている。
ためしに書いてみたのが以下。
Window.draw 画像を描画します。 Window.draw( x, y, image[, z = 0]) ■解説 指定位置に指定の画像を描画します。 xとyは座標で、画面の左上が(0,0)となるピクセル位置で指定します。 imageはImageクラスのオブジェクトです。 zは描画順序で、小さい数字が奥となるように描画されます。。 ■詳細 座標は32bit整数で管理しているため、画面外の位置を指定することもできますが、完全に画面外を指定すると描画されません。 上下左右にはみ出すことは可能です。 指定位置に画像の左上の点が重なるように描画されます。 メソッド実行時点では実際の描画はされず、描画登録のみとなります。 Window.loopの処理内、もしくはWindpw.updateメソッドの実行でz引数の小さい順に実際の描画がされます。 このような仕組みのため、Window.draw→最初のdrawで使ったImageオブジェクト編集→同じImageオブジェクトをWindow.drawとすると、 はじめのWindow.drawの描画画像も変更されます。 画面に描画されると登録はすべて解除されます。それ以外の方法で登録したものを解除することはできません。 imageの指定はImageクラスのオブジェクトもしくはImageクラスの派生クラスのオブジェクトを指定できます。 z引数にはマイナスや実数も使えます。同じ値の場合は最初にdrawしたものが一番奥になります。 描画登録の全てのz引数が0の場合はソート処理が省略されます。 ※DXRuby1.0.5では、Window.drawメソッドではimageで指定したオブジェクトを束縛しません。 これは、グローバル変数やインスタンス変数で参照を保持しておかないと、 指定したImageオブジェクトが描画処理前にGCで回収されてしまう可能性があることを示しています。 例えば次のようなコードを書くとSegmentation faultで異常終了します。 require 'dxruby' def sample_draw image = Image.new(128, 128, [255,255,255]) Window.draw(0, 0, image) end Window.loop do sample_draw GC.start end ■サンプルコード 画面の左上に白い四角が描画されます。 require 'dxruby' image = Image.new(128, 128, [255, 255, 255]) Window.loop do Window.draw(0, 0, image) end ■関連項目
この調子で全メソッドの説明なんて書いてられない。
どうしたもんか。