Bitmapクラスに図形を描画するメソッドを追加します。
- 基本情報
- 説明
- 概要
- メソッド
- ● draw_radar_graph(x, y, values[, option])
- ● draw_line(x1, y1, x2, y2[, color])
- ● draw_line(rect[, color])
- ● draw_line_g(x1, y1, x2, y2[, color1[, color2]])
- ● draw_line_g(rect[, color1[, color2]])
- ● draw_line_a(x1, y1, x2, y2[, color])
- ● draw_line_ag(x1, y1, x2, y2[, color1[, color2]])
- ● draw_line_a2(x1, y1, x2, y2[, color])
- ● draw_line_ag2(x1, y1, x2, y2[, color1[, color2]])
- ● draw_rect(x, y, width, height[, color])
- ● draw_rect(rect[, color])
- ● draw_multiangle(x1, y1, x2, y2, ... xn, yn[, color])
- ● draw_multiangle_a(x1, y1, x2, y2, ... xn, yn[, color])
- ● fill_triangle(x0, y0, x1, y1, x2, y2[, color])
- ● fill_triangle_g(x0, y0, x1, y1, x2, y2[, color1[, color2[, radial]]])
- ● draw_circle(ox, oy, radius[, color])
- ● draw_circle_a(ox, oy, radius[, color])
- ● fill_circle(ox, oy, radius[, color])
- 備考
- 更新履歴
基本情報
前提スクリプト
なし
拡張タイプ
△ 開発用 (導入するだけでは特に変化しない)
説明
概要
Bitmap に直線などの図形を描画するメソッドを追加します
メソッド
● draw_radar_graph(x, y, values[, option])
座標(x, y)を中心として、values に与えられた値を、option に従って多角形のレーダーグラフとして描画します。旧版
LNS007a レーダーグラフとほぼ同じものです。
● draw_line(x1, y1, x2, y2[, color])
● draw_line(rect[, color])
指定座標を結ぶ直線を描画します。
ブレゼンハムのアルゴリズムを利用した高速な描画を行います。
colorを省略した場合はフォントの色が使われます。上の形式の場合は (x1, y1) から (x2, y2) に至る直線を、下の形式の場合は矩形の左上から右下までを結ぶ直線を描きます。
● draw_line_g(x1, y1, x2, y2[, color1[, color2]])
● draw_line_g(rect[, color1[, color2]])
指定座標を結ぶ直線をグラデーションさせながら描画します。draw_line に比べて数十倍の時間がかかるため短時間での多用は避けたほうがいいです。
- color1
- 始点の色(省略時 / nil の場合は文字色と同じ)
- color2
- 終点の色(省略時 / nil の場合は color1 と同じ)
● draw_line_a(x1, y1, x2, y2[, color])
● draw_line_ag(x1, y1, x2, y2[, color1[, color2]])
基本的に draw_line または draw_line_g と同じですが、アンチエイリアスを適用しよりなめらかな直線を描画します。矩形範囲を指定する形式も可能です。
この処理には時間がかかるため、毎フレーム呼び出すような用途には向きません。
● draw_line_a2(x1, y1, x2, y2[, color])
● draw_line_ag2(x1, y1, x2, y2[, color1[, color2]])
アンチエイリアス直線描画のブレンド版です。draw_line_a よりさらに時間がかかります。
ブレンド版メソッドは、複数の線を重なるように引いたとき、重なる部分があとから引いた線に上書きされないようになります。
draw_line_a の他、「_a」で終わるアンチエイリアス描画メソッドについては同様にブレンド版が用意されています。
● draw_rect(x, y, width, height[, color])
● draw_rect(rect[, color])
矩形の枠を描画します。fill_rect が内側を塗りつぶすのに対して、こちらは枠だけを描画するメソッドです。引数の形式は基本的に fill_rect と同じですが、color を省略した場合はフォントの色が使われます。
● draw_multiangle(x1, y1, x2, y2, ... xn, yn[, color])
● draw_multiangle_a(x1, y1, x2, y2, ... xn, yn[, color])
指定された頂点を持つ多角形を描画します。最初に指定された座標と最後に指定された座標を結んで多角形を閉じます。単純に指定された頂点を順に結んでいくため、指定方法によっては辺が重なって多角形ではなくなる場合があります。
指定された頂点が1個の場合は点、2個の場合は直線を描画します。エラーにはなりません。
draw_multiangle_a はアンチエイリアスを有効にした描画メソッドです。
color は他のメソッド同様、省略時にはフォントの色が使われます。
● fill_triangle(x0, y0, x1, y1, x2, y2[, color])
3つの頂点を指定し、内部を塗りつぶした三角形を描画します。color を省略した場合はフォントの色が使われます。
三点が一直線上にある場合は何もしません(警告も出ません)。
● fill_triangle_g(x0, y0, x1, y1, x2, y2[, color1[, color2[, radial]]])
3つの頂点を指定し、内部をグラデーションで塗りつぶした三角形を描画します。
このメソッドでは(x0, y0)をグラデーションの中心とし、2種類の塗り方があります。
- radial が偽、または省略時
- (x0, y0)から(x1, y1)までの辺Aを color1、(x0, y0)から(x2, y2)までの辺Bを color2 で描画し、その間は辺A,Bからの距離に応じてグラデーションします。
- radial が真の時
- 点(x0, y0)をcolor1、(x1, y1)から(x2, y2)までの辺Cを color2 で描画し、その間は辺Cからの距離に応じてグラデーションします。
- サンプル画像では左上の頂点が(x0, y0)になっています。
● draw_circle(ox, oy, radius[, color])
● draw_circle_a(ox, oy, radius[, color])
中心(ox, oy)、半径 radius の円周を描画します。color は他と同様です。
draw_circle_a はアンチエイリアスを有効にした描画メソッドです。
● fill_circle(ox, oy, radius[, color])
内部を塗りつぶした円を描画します。
備考
再定義されるメソッド
なし
設定項目
- Radar_Default
- draw_radar_graph の引数デフォルト値(draw_radar_graph の使い方)参照
- Graph_Colors
- draw_radar_graph の色デフォルト値(draw_radar_graph の使い方)参照
更新履歴
- 2021/08/28 レーダーグラフの設定項目が読み込めない不具合を修正。レーダー(radar)の綴りが間違っていたのを修正。
- 2020/12/28 公開(旧LNS007 Bitmap拡張から図形描画のみ抜き出したもの)
- こんにちは。不具合を発見したのでご報告いたします。 LNS000 組み込み拡張 LNS010 Input拡張 LNS100 プリセット拡張 LNS102 マウス操作 LNS140 マップ/キャラ拡張 の5つを導入した状態で、マップ画面でマウスカーソルをゲームウインドウの外側で大きく動かすなどすると、「 スクリプト 'LNS 140 マップ/キャラ拡張' の 980 行目で IndexError が発生しました。 index -1 too small for array; minimum: 0 」というエラーメッセージが表示され、ゲームが終了してしまいます。 スクリプトは全て最新で、内容は改変していません。 -- 2022-07-26 01:29:40
- 確認が遅れましたが、対応修正しました。正確には「既に対応済みであったがアップロードを忘れていた」という状態でした…… -- 2022-11-01 15:39:07
- 対応ありがとうございます!しかし LNS000, 010, 100, 102, 140 の5つを入れた状態で起動直後に「スクリプト 'LNS140 マップ/キャラ拡張' の 1719 行目で NameError が発生しました。 undefined method 'lns102_dash?' for class 'Game_Player'」と表示され、終了します。 -- 2022-12-24 16:39:35
最終更新:2021年08月28日 01:57