2016-01-02 46 views
0

我正在用LÖVE框架编写Lua代码。是否有任何东西可以提供在特定时间内暂停给定函数的运行?在进入下一步之前等待一段时间

我知道的是,love.draw()love.updates()都可用来跟踪时间的持续。我应该根据这一点做些什么,还是有一种更简单的方法?可能内置的功能?

回答

1

暂停这些不是一个好主意。特别是love.draw,因为需要使窗口保持最新状态。

但是,如果您在特定时间段内有一些不想执行的操作,那很简单。在这段时间的开始,获得当前时间。然后,在每一帧中检查是否已经过了所请求的经过时间。一旦完成,请回到做这个处理。

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 
+0

我不一定要暂停,而是在它们中调用一个函数。你的解决方案非常出色,我甚至没有这个想法,谢谢! –

相关问题