マウスホイール RESUME_MOUSE_WHEEL関数 – FlyWithLua

RESUME_MOUSE_WHEEL = true

プール値がtrueに設定されている場合、スクリプトはマウスホイールの動きを再開し、X-Planeはそれを認識しません。 X-Planeや他のプラグインを妨害しないように、デフォルト値はfalseです。
つまり、trueに設定されているとマウスホイールの動きを認識し、X-Plane上での様々な動作(画面の移動、スイッチ等)を行うことができない。falseだとその反対でX-Planeが使用する動作が優先されFlyWthLuaのホイール動作が認識されなくなる。FlyWthLuaで設定したマウスホイールの動作を使いたい場合はtrueにする必要がある。
これはホイール関数(do_on_mouse_wheel)を使う必要がある。

中々理解しにくい RESUME_MOUSE_WHEEL
RESUMEとは再び始めるという意味、ホイールの場合はマウスの中央にあるホイールを回して数値を変えたりするのに使われるが、その時「false」にしていると、本来は数値の変化だけでいいのに、下の画面が反応してしまいスクロールによって画面が奥にいったり、手前に行ったりして困ってしまうということになる。
これを止めるには「true」にしておく必要がある。

下の画像では数値のところをマウスホイールを使って数値を変化させるようにしているので、この範囲を「RESUME_MOUSE_WHEEL = true」を設定している。これによりこのスペースだけはX-Planeの画面の拡大、縮小は実行されない。逆にこの範囲は数値をマウスホイールで変化させることができる。

例題として下をあげたが、一番下のほうに「RESUME_MOUSE_WHEEL = true」がそれにあたる。

require "graphics"

local qs_baro = dataref_table("sim/cockpit/misc/barometer_setting")
local qs_real_baro = dataref_table("sim/weather/barometer_sealevel_inhg")

function draw_quick_settings()

	-- グラフィックシステムを初期化する
	XPLMSetGraphicsState(0,0,0,1,1,0,0)

	-- 透明な背景を描く
	graphics.set_color(0, 0, 0, 0.5)	--長方形の色(黒)、透明度
	graphics.draw_rectangle(100, 70, 600, 100)	--長方形を描く

	graphics.set_color(1, 1, 1, 0.5)	--線の色

	-- 情報テキストを描く
	draw_string_Helvetica_10(115, 89, "BARO")
	--1013.2 ヘクトパスカル(hPa)= 29.92 水銀柱インチ(inHg)
	--下はdatarefの水銀柱インチ値をヘクトパスカル値に変換している
	draw_string_Helvetica_18(115, 74, math.floor(qs_baro[0] * 33.8637526 + 0.5))--math.floor=小数点以下切り捨て

end

do_every_draw("draw_quick_settings()")

-- マウスをクリックしたときの動作を設定
function qs_mouse_click_events()
	-- これは一度だけ反応します
	if MOUSE_STATUS ~= "down" then
		return
	end
	-- BARO
	if MOUSE_X > 110 and MOUSE_X < 160 and MOUSE_Y > 70 and MOUSE_Y < 100 then
		qs_baro[0] = qs_real_baro[0]	--クリックでqs_baroの値をqs_real_baroの値にする。
		--qs_real_baro値は変換されていないように見えるが、上のqs_baroの戻って変換される。
		RESUME_MOUSE_CLICK = true
	end
end

do_on_mouse_click("qs_mouse_click_events()")

-- マウスホイールをクリックしたときの動作を設定
function qs_mouse_wheel_events()
	-- BARO
	if MOUSE_X > 110 and MOUSE_X < 160 and MOUSE_Y > 70 and MOUSE_Y < 100 then
		qs_baro[0] = qs_baro[0] + MOUSE_WHEEL_CLICKS * 0.01	--1x0.01分、細かく動作させる
		RESUME_MOUSE_WHEEL = true
	end
end

do_on_mouse_wheel("qs_mouse_wheel_events()")