等待一定时间再进行下一步
Waiting a certain amount of time before going to the next step
我正在使用 LÖVE 框架编写 Lua 代码。有没有什么可以提供将给定函数的 运行 暂停一段时间?
据我所知,love.draw()
和 love.updates()
都可用于跟踪时间的持续性。我应该基于此做些什么,还是有更简单的方法?可能是内置函数?
暂停其中任何一个都不是一个好主意。特别是 love.draw
,因为这是保持 window up-to-date.
所必需的
但是,如果您有一些不想在特定时间段内执行的处理,那很容易。在那段时间的开始,获取当前时间。然后,每一帧,检查请求的经过时间是否已经过去。完成后,返回进行该处理。
local function begin_elapsed_wait(time_to_wait)
local end_time = love2d.timer.getTime() + time_to_wait
return function()
if(end_time < love2d.timer.getTime()) then
return true
else
return false
end
end
end
local am_waiting = function() return false end
function love.update(dt)
if(am_waiting()) then
return
end
--Do stuff.
if(--[[whatever]]) then
am_waiting = begin_elapsed_wait(2.5) --do not update for 2.5 seconds
end
end
我正在使用 LÖVE 框架编写 Lua 代码。有没有什么可以提供将给定函数的 运行 暂停一段时间?
据我所知,love.draw()
和 love.updates()
都可用于跟踪时间的持续性。我应该基于此做些什么,还是有更简单的方法?可能是内置函数?
暂停其中任何一个都不是一个好主意。特别是 love.draw
,因为这是保持 window up-to-date.
但是,如果您有一些不想在特定时间段内执行的处理,那很容易。在那段时间的开始,获取当前时间。然后,每一帧,检查请求的经过时间是否已经过去。完成后,返回进行该处理。
local function begin_elapsed_wait(time_to_wait)
local end_time = love2d.timer.getTime() + time_to_wait
return function()
if(end_time < love2d.timer.getTime()) then
return true
else
return false
end
end
end
local am_waiting = function() return false end
function love.update(dt)
if(am_waiting()) then
return
end
--Do stuff.
if(--[[whatever]]) then
am_waiting = begin_elapsed_wait(2.5) --do not update for 2.5 seconds
end
end