如何在不停止整个程序的情况下使 Lua 脚本休眠?
2011-1-8 2:23:1
收藏:0
阅读:142
评论:2
我正在编写一个 GUI,旨在通过终端用户轻松定制。这些功能是使用 C++ 编写的,并从 Lua 调用。我正在尝试创建一个类似于 Sleep() 的函数,它将暂停脚本但不会暂停整个程序。
我使用线程让每个功能都能正常工作。然而,我希望它成为一个独立的功能。也就是说,不要让它成为 CreateButton 函数或其他任何函数的一部分,只是简单地拥有一个 Delay 或 Sleep 函数,它只会停止脚本,而不是整个程序。
作为 Lua 的新手,我真的不知道该如何处理这个问题。非常感谢您的帮助。
原文链接 https://stackoverflow.com/questions/4632012
点赞
stackoverflow用户560839
我建议使用协程和消息传递来构建状态机。将每个按钮按下的操作看作一个传递到协程恢复中的 C++ 字符串。然后你可以建立一个小的状态机,以消息为切换条件。你可以进行一些 UI 工作,然后将协程暂停,直到有消息再次唤醒它。
如果你的状态机正在处理 UI 方面,那么使用这种方法非常方便。
伪代码:
c_obj:wait_for_message("mouse_down");
local message = coroutine.yield();
if(message == "mouse_down") then
更新绘制函数。
end
c_obj:wait_for_message("mouse_up");
local message = coroutine.yield();
if(message == "mouse_up") then
更新 UI……
更新绘制函数。
end
等等……
2011-01-11 03:16:32
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
为了使你的繁忙等待方案更加高效,如何使用
select()
或类似的方法等待某些 GUI 事件处理,而不是不停地运行?似乎这是你无论脚本方面都要做的 GUI 功能。