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
好的,我对 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