ビーコンライトスイッチをON/OFF

非常に簡単なスクリプトですが、スイッチボタンを作成してビーコンライトをコントロールします。以下の画像ではセスナのスイッチで実行しています。マウスを左下隅に持っていくとボタンが表示され、クリックするとスイッチが連動します。

名称未設定2_png


ファイル名は半角英数字だったら、好きなように付けてください。
ここでは
BeaconLightSwitch.lua  ダウンロード


require "graphics"
local qs_beacon_light = dataref_table("sim/cockpit/electrical/beacon_lights_on")

function draw_quick_settings()
	-- マウスが反応するスペース。この範囲にマウスを持っていくとボタンが出てくる。
	if MOUSE_Y > 100 or MOUSE_X > 600 then
		return
	end
	
	-- グラフィックシステムを初期化する
	XPLMSetGraphicsState(0,0,0,1,1,0,0)

	-- カラースイッチ情報を描画(ビーコンライトをON/OFFしたときの色)
	if qs_beacon_light[0] == 0 then
		graphics.set_color(1, 1, 0, 1)	--イエロー
	else
		graphics.set_color(0, 1, 0, 1)	--グリーン
	end
	graphics.draw_rectangle(0, 0, 40, 30)	--ビーコンの色範囲を描く
	
	-- 情報テキストを描く
	graphics.set_color(0, 0, 0, 1)	--黒
	draw_string_Helvetica_10(5, 17, "Beacon")
	draw_string_Helvetica_10(8, 5, "Light")
end
do_every_draw("draw_quick_settings()")

-- マウスをクリックしたときの動作を設定
function qs_mouse_click_events()
	-- 一度だけ反応します
	if MOUSE_STATUS ~= "down" then
		return
	end
	-- ビーコンライトのON/OFF
	if MOUSE_X < 40 and MOUSE_Y < 30 then
		if qs_beacon_light[0] == 0 then
			qs_beacon_light[0] = 1
		else
			qs_beacon_light[0] = 0
		end
		RESUME_MOUSE_CLICK = true
	end
end

do_on_mouse_click("qs_mouse_click_events()")