如何实现LuaJ暂停功能?

我正在开发一个游戏引擎,希望游戏可以处理一个Lua文件。

目前,我正在使用我编写的自定义脚本语言将每个命令存储在游戏可以执行的列表中。我的脚本语言在目前阶段非常原始,这就是为什么我想切换到Lua的原因,但我不知道该如何继续操作。

以下是我想要做的一个示例:

engine.message("Text"//暂停直到玩家点击按钮
engine.message("Text2"//暂停直到玩家点击按钮
chosenValue = engine.choose("Option1|Option2"//等待玩家选择,然后分配值
if(chosenValue =" Option1")then
  engine.message("One"//暂停直到玩家点击按钮
else
  engine.message(" Two"//暂停直到玩家点击按钮
end
点赞
用户5453250
用户5453250

我通过在另一个线程上运行 Lua 并使用 1 个许可证的 Semaphore 来解决了这个问题,在脚本启动时获取许可证。当我想要暂停时,我从 Lua 线程请求许可证,这会暂停整个过程,当用户点击按钮时,我释放一个许可证。

2017-01-04 19:12:06