Lua Computercraft稍后将更改值

Lua Computercraft稍后将更改值,lua,computercraft,Lua,Computercraft,好吧,我对lua和computercraft几乎完全陌生,但我有很多创造力。我正在尝试编写每秒都会重新打印一个变量的代码。以下是我到目前为止的情况: display = "Loading..." While true do sleep(1) term.clear() term.setCursorPos(1,1) print (display) end sleep(3) display = "hello" 我想用它来渲染一个2d游戏,“display”变量会经常更改,因此我希望它每秒钟更

好吧,我对lua和computercraft几乎完全陌生,但我有很多创造力。我正在尝试编写每秒都会重新打印一个变量的代码。以下是我到目前为止的情况:

display = "Loading..."
While true do
 sleep(1)
 term.clear()
 term.setCursorPos(1,1)
 print (display)
end
sleep(3)
display = "hello"
我想用它来渲染一个2d游戏,“display”变量会经常更改,因此我希望它每秒钟更新一次

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


我做错了什么?

,而true
是一个无限循环。脚本永远不会进入睡眠状态(3)


也许您想用i=1,3的
替换
而不是true
,我在Lua方面没有经验,但这可能是一个解决方案:

在UI线程中,运行:

while ((status=lua_resume(L_coroutine, 0)) == LUA_YIELD) {
  semaphore_wait(); /* whatever the appropriate C# call is */
}
“等待响应”应类似于:

while not results[my_result] do
  coroutine.yield()
end
Lua中的“传入消息”函数应如下所示:

results[cur_result]=parsed_message

问题是我希望循环一直运行,最终我想用它来渲染一个2d游戏,“显示”变量会经常改变,所以我希望它每秒钟更新一次。可能与我认为它应该是一个comment@BartekBanachewicz评论并没有提供足够的空间来解释这种深度的答案。但这不是一个标准答案,但可能正是OP解决问题所需要的。谢谢你的回答。但就我目前所处的位置而言,你链接到的帖子有点让我不知所措。我仍然会将其标记为正确,因为它可能会帮助其他比我更有经验的观众。@Ryzehalbergd最重要的事情是将
while true
更改为
while变量
该变量应在循环中的某个点返回
false
,以便while可以停止,代码将进入
睡眠(3)
在while的
结束之后。