Computercraft lua 稍后更改值

Computercraft lua change value later

好的,我对 lua 和计算机技术几乎完全陌生,但我有很多创造力。我正在尝试编写每秒重新打印一个变量的代码。这是我目前所拥有的:

display = "Loading..."
While true do
 sleep(1)
 term.clear()
 term.setCursorPos(1,1)
 print (display)
end
sleep(3)
display = "hello"

我想用它来渲染 2d 游戏,"display" 变量会经常变化,因此我希望它每秒更新一次。

当我 运行 代码时,它确实每秒刷新一次,但出于某种原因,我似乎无法在 3 秒后更改 "display" 变量来测试它。

我做错了什么?

while true 是一个无限循环。脚本永远不会到达 sleep(3).

也许您想将 while true 替换为 for i=1,3

我在 Lua 方面没有经验,但这可能是一个解决方案:answer on SO

In the UI thread, run:

while ((status=lua_resume(L_coroutine, 0)) == LUA_YIELD) {
  semaphore_wait(); /* whatever the appropriate C# call is */
}

"Wait for response" should look something like:

while not results[my_result] do
  coroutine.yield()
end

The "incoming message" function should look like the following in Lua:

results[cur_result]=parsed_message