Luaの「print」をFlyWithLuaで使う場合の変換方法

2023年2月28日

Luaでは出力するのに「print」を使うが、FlyWithLuaでは「do_every_draw」でX-Planeの画面に出力できる。

以下のように do_every_draw(‘draw_string(50, 30, hoge)’) 3番目のパラメーターにprintの変数hogeを入れとその値が入る。

--2つの引数(パラメーター=変数ともいう)
--xyの引数をreturn x + yで戻す(戻り値)

function sum(x, y)
    return x + y
end

hoge = 10 --xの引数の戻り値
piyo = 20 --yの引数の戻り値

result = sum( hoge, piyo )  --2つの戻り値を計算して1つの戻り値にしたものがこれ
print( hoge .. " + " .. piyo .. " = " .. result )
do_every_draw('draw_string(50, 30, hoge.."+"..piyo.."="..result)')

printでの出力はAに出ている。do_every_drawはBに出ている。
上のAの出力はX-Planeメニューの「デベロッパー -> デベロッパーコンソールの表示」から。

文字列の操作

Lua で文字列を操作するには、string ライブラリを使う。文字列の一部を切り出しすることをsubstringという。string.sub(str, 7, 12)はstrの文字列の7〜12の文字を抽出する。

str = "abc%&8feifei`-*`"
name = string.sub(str, 7, 12)
print(name)

do_every_draw('draw_string(50, 30, name)')

結果