如何在Lua中实现到达指定数值后自动停止的正计时定时器
Lua正计时到指定值自动停止的修改方法
你当前的代码用的是while 1死循环,没有设置退出条件,所以会一直运行。只需要增加目标计时值的判断即可实现到点停止,同时可以优化下原代码的稳定性,避免因为系统调度卡顿导致计时失效。
完整修改后代码
-- 设定你要停止的计时数值,需要改50/100直接修改这个变量即可 local target = 50 startTime = os.time() count = 1 -- 循环条件改为count不超过目标值 while count <= target do if os.difftime(os.time(), startTime) >= 1 then print (count) count = count + 1 startTime = os.time() end end print("计时结束,已到达设定值"..target)
修改说明
- 新增
target变量作为计时停止的阈值,调整数值即可切换50秒、100秒等不同的停止规则 - 将原死循环
while 1的条件改为while count <= target,计数超过目标值后循环会自动终止,程序停止 - 将原判断
os.difftime(...) == 1改为>= 1,避免系统卡顿跳过1秒的时间节点后,计时器再也无法进入计数逻辑的问题
内容的提问来源于stack exchange,提问作者Marco Niebuhr
相关产品推荐
相关产品推荐

