luaで2回目以降の呼び出しで変数を保持しておく
C/C++とLua言語で開発しています。
メインはC/C++言語でつくっていてて、補助的なスクリプト部分はLuaです。
そこで、たとえば、F1キーを押したらLuaのスクリプトAを起動するとします。
そしたら、LuaのスクリプトAが処理され、またC/C++に処理がもどってきます。
そのあと、また別の機会にF1を押したら、前回のLuaスクリプトAの
処理で使用した変数を保持したままの状態から、再度Luaスクリプトを
実行したいのです。
グローバル変数を使って実現しようとしましたが、うまくできませんでした。
ファイル:hoge.lua
[START]
_G[switch] = 0;
if _G[switch] == 0 then
_G[value] = 100;
end
_G[value] = 120
[END]
と、作ったのですが、2回目以降呼び出しても _G[switch] = 0 をとおるので
どうしても _G[value] = 100 となってしまいます。
したい処理としては、2回目以降の呼び出しで、_G[switch] = 0 とならずに
_G[value] の1回目の処理の結果を保持したままの状態で、処理したいのです。
条件として、F1キー(指定したキー)でLuaスクリプトを呼び出せて、
C/C++言語の方は、処理を続行
処理を続行中にF1キー(指定したキー)を押すと、前回の状態(変数)を保持したまま
Luaスクリプトを処理するというものです。
上の実装した例でいうところでは、_G[value] が 120 の状態でスクリプトを処理したいのです。
どのような実装方法があるのでしょうか?