【发布时间】:2012-11-21 09:12:47
【问题描述】:
我将 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 作为主游戏循环是不是一个糟糕的设计?
【问题讨论】: