ondrawで作成したテキストを左上起点にする – FlyWithLua

2023年3月20日

ondrawウインドウは基本左下が起点になる。すると、ウインドウを広げると左はいいがテキストが下を基準にするので移動してしまうということになる。
上を起点にする必要がある。以下のようにすると、ウインドウを広げても左上が起点になるとテキストは移動しない。

float_wnd_get_geometryを使うことで左右上下の位置を取得できるので「y + (winTop – winBottom)」でyの位置を上からにすることが出来る。
注!:float_wnd_get_geometry(wnd)、は「function on_draw(wnd, x, y)」と合わせる必要がある。

wnd = float_wnd_create(280, 220, 1, true)
float_wnd_set_title(wnd, "imgui Button")
float_wnd_set_ondraw(wnd, "on_draw")
float_wnd_set_onclose(wnd, "closed_demo")

-- xとyはウィンドウの原点、つまり左下、 xは右に増加し、yは上に増加する。
function on_draw(wnd, x, y)
	--以下により左上が原点になる(winRight, winBottomを指定すると右下が原点?)
	--winLeftとwinRightで左右のウインドウ幅を取得している。左が原点なのでこれは使わず「x」が使用されている。
	--天地の場合、上を原点にするので「winTop - winBottom」で天地幅を取得して「y」に天が原点になるように設定されている。white yellow magenta grey green red cyan
	winLeft, winTop, winRight, winBottom = float_wnd_get_geometry(wnd)
	draw_string(x + 30, y + (winTop - winBottom) - (20 * 2), "DCバッテリースイッチをオンにする", "white")
	-----------------------------------------
end