lua中ipairs循环始终只返回一个值?
2017-6-14 15:11:55
收藏:0
阅读:74
评论:1
快速编辑:_G.i是我设置为创建24小时时间框架的1-24表。它在三级脚本中全局存储,并且实现方式如下:
_G.i = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24}
所以我正在尝试让这个循环与我创建的昼夜周期一起工作。我希望循环不断检查现在的时间,并根据我设置的一些参数将时间打印到控制台。
light = script.Parent.lightPart.lightCone
timeofday = ""
wait(1)
function checkTime()
for i, v in ipairs(_G.i) do
wait(1)
print(v)
print(timeofday)
if v > 20 and v < 6 then
timeofday = "night"
else
timeofday = "day"
end
end
end
while true do
checkTime()
wait(1)
end
由于某种原因,这只会在控制台中打印出白天,即使我已经循环了它。时间与 day-night 脚本中的时间相同。我也会在这里将其发布。
function changeTime()
for i, v in ipairs(_G.i) do
game.Lighting:SetMinutesAfterMidnight(v * 60)
wait(1)
end
end
while true do
changeTime()
end
如果这篇文章看起来很混乱,或者代码很混乱,我很抱歉,我对这两个都很新。一直在试图自己解决这个问题,最初我对 ipairs 循环完全不了解,但我设法使它与日夜周期一起工作,而不是使用无限等待(1)循环。
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- Lua 虚拟机加密load(string.dump(function)) 后执行失败问题如何解决
- 我想创建一个 Nginx 规则,禁止访问
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在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 代码?

您的问题在于这一行:
if v > 20 and v < 6 thenv永远不可能同时大于 20 和小于 6。您需要使用or逻辑运算符。此外,我不确定为什么您在使用全局变量
i来保存从 1 到 24 的数字列表?您可以通过 范围 for 循环 来达到相同的效果。如果您要检查下面代码设置的当前时间,则应将时间值存储在全局变量中。像这样:light = script.Parent.lightPart.lightCone current_time = 0 function checkTime() print(current_time) if current_time > 20 or current_time < 6 then timeofday = "night" else timeofday = "day" end print(timeofday) end while true do checkTime() wait(0.1) end function changeTime() for v = 1, 24 do game.Lighting:SetMinutesAfterMidnight(v * 60) current_time = v end end while true do changeTime() wait(1) end您之前的方式存在问题,因为您假定
checkTime()函数总是在changeTime()函数之后运行,但这并不一定是正确的。