ゲームエンジンのロジックにはLuaを使用しています。私のメインのゲームループはLuaでは実行されません。シーン階層内の特別なノードのみにLuaスクリプトが添付されています。これらのスクリプトはフレームごとに実行されます。私が直面している問題は、グローバル変数の値をあるフレームから別のフレームに保持する必要があることです。
私の一時的な解決策は次のようになります。
finish = useBool("finish", false)
timer = useInt("timer", 0)
showTimer = useBool("showTimer", true)
startTimer = useInt("startTimer", 0)
play0 = useBool("play0", false)
play1 = useBool("play1", false)
play2 = useBool("play2", false)
play3 = useBool("play3", false)
delta = useInt("delta", 0)
gameOverTime = useInt("gameOverTime", 5000)
finishTime = useInt("finishTime", 5000)
checkPoint = useInt("checkPoint", 255)
<...> Game logic <...>
setInt("message", message);
setInt("checkPoint", checkPoint)
setInt("finishTime", finishTime)
setInt("gameOverTime", gameOverTime)
setInt("timer", timer)
setBool("play3", play3)
setBool("play2", play2)
setBool("play1", play1)
setBool("play0", play0)
setInt("startTimer", startTimer)
setBool("showTimer", showTimer)
setInt("timer", timer)
setBool("finish", finish);
最初にC++のハッシュマップからグローバル変数を取得する特別なメソッドを呼び出し、スクリプトの最後にそれらを再度設定します。
これを暗黙的に行う方法はありますか?
Luaをメインのゲームループとして使用しないのは悪いデザインですか?