我使用 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 作为主要游戏循环是一个糟糕的设计吗?