DXRuby 1.4.6 Reference Manual
INDEX > Window > draw_tile

Window.draw_tile(base_x, base_y, map, image_array, start_x, start_y, size_x, size_y, z=0)

Description

タイルチップと二次元配列を使ってマップ描画をします。
画像のサイズはimage_arrの先頭の画像から返します。すべて同じサイズのImageオブジェクトを使用してください。
マップ配列の長さが要素によって異なる場合の動作は未定義です。長さはすべて一致させてください。
描画範囲が上下左右に2次元配列からはみ出した場合、自動的にループします。
1枚絵を無限ループさせるという応用や、base_x/base_yをマイナス値にして左方向へのループなどもできます。
ピクセル単位でスクロールさせることができますが、描画は上下左右に最大1枚分はみ出すので、上に枠をかぶせて隠すように描画するか、RenderTargetに一度描画して範囲を制限するか、ウィンドウのサイズ全体に描画してはみ出した部分を描画されないようにするかしてください。
image_arr配列に配列を入れ子にすることができます。Array#flatten的な処理がされて前から連番が振られますので、同じサイズの配列であれば中身を差し替えることで簡単にアニメーションすることができます。

Parameters

base_x Integer
マップを描画する画面上の左上基点X座標を指定します。
ピクセル単位スクロールの都合上、実際の描画は左にはみ出すことがあります。
負の数を指定すると左方向へループします。nilを指定すると0として扱われます。
base_y Integer
マップを描画する画面上の左上基点Y座標を指定します。
ピクセル単位スクロールの都合上、実際の描画は上にはみ出すことがあります。
負の数を指定すると上方向へループします。nilを指定すると0として扱われます。
map Integer[][]
image配列の要素番号で構成されたマップの二次元配列
image_array Array
マップタイルのImageオブジェクト配列
start_x Integer
マップ内の描画開始位置をピクセル単位で指定します。nilを指定すると0となります。
start_y Integer
マップ内の描画開始位置をピクセル単位で指定します。nilを指定すると0となります。
size_x Integer
描画するマップタイルの枚数を縦横の数で指定します。nilを指定すると画面サイズから適切な数が算出されます。
size_y Integer
描画するマップタイルの枚数を縦横の数で指定します。nilを指定すると画面サイズから適切な数が算出されます。
z Integer|Float
3D的な奥行きではなく、描画順です。
小さいほど奥になり、同じ値の場合は最初にdrawしたものが一番奥になります。