2014/05/19

C#とLuaの連携

NLuaというスクリプト言語LuaをC#から使えるようにするプロジェクトがあります。(https://github.com/NLua/NLua)

1.目的
スクリプト言語からC#で実装したモーター制御、通信、描画、入出力処理を制御し、 複数の期待に柔軟に対応できるアプリケーションづくりを支援する。

想定する使い方はたとえば次の通り。

-- 画面に文字を描画
screen = Screen.new();
screen.textOut("sample");

-- 文字の大きさを変更
screen.setFontSize(20);

-- 描画する位置を指定
screen.setPosition(100, 100);

-- 枠を描画
screen.drawRectangle(10, 10, 100, 100);

-- ボードの生成
board = {};
board[1] = PWMBoard.new();
board[2] = RotaryEncoderBoard.new();

-- ボードへ出力
t = board[1];
t:setPosition(2, 500); -- 出力2を50%にする
t:setPosition(3, 100); -- 出力3を10%にする
t:send(); -- データを送信する

-- ボードから入力
t = board[2];
t:recieve();
screen.textOut(t:getPosition());

-- コントローラからの入力受付
function onControllerInput(status) {
if status.maru then
MessageBox.show("○が押された");
end
}

-- 1フレームごと呼び出される関数
function onFrame() {
-- 描画処理など
}