2016-01-02 68 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

我不一定要暫停,而是在它們中調用一個函數。你的解決方案非常出色,我甚至沒有這個想法,謝謝! –

相關問題