我怎样才能实现 LuaJ 暂停?

How can I implement LuaJ pause?

我正在开发游戏引擎,希望游戏能够处理 lua 文件。

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

这是我正在尝试做的一个例子:

engine.message("Text")     // Pause until player clicks a button
engine.message("Text2")    // Pause until player clicks a button
chosenValue = engine.choose("Option1|Option2")  // Wait for player to choose, then assign value
if(chosenValue="Option1") then
  engine.message("One")    // Pause until player clicks a button
else
  engine.message("Two")    // Pause until player clicks a button
end

我在另一个线程上通过 运行 Lua 解决了它,并使用 Semaphore 和脚本启动时获得的 1 个许可。当我想暂停时,我从暂停整个事情的 Lua 线程请求一个许可,当用户单击一个按钮时,我释放一个许可