等待一定时间再进行下一步

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