Lua中的帧独立时间?

我正在使用Love2D为我的朋友和我创建一款小游戏,但是我有一个问题:我想计算经过的时间,独立于帧速率。我尝试了这个方法,但是稍微的误差会不断累积,最终一秒钟会在一百分之一秒内过去。

local last_time = os.time()

function timeofday_update()
    world_time = world_time + os.time() - last_time 
}

原文链接 https://stackoverflow.com/questions/5751772

点赞
stackoverflow用户169658
stackoverflow用户169658

为什么不在程序开始时或者开始的地方设定时间(starting_time = os.time()),然后'当前经过时间'就是 os.time() - starting_time。不需要累加...

2011-04-22 02:46:47
stackoverflow用户33252
stackoverflow用户33252
function make_stopwatch ()
    local start = 0
    local finish = 0
    local function sw (cmd)
        if cmd == "start" then
            start = os.time()
            return 0
        end
        if cmd == "lap" then
            return os.difftime(os.time(), start)
        end
        if cmd == "stop" then
            finish = os.time()
        end
        return os.difftime(finish, start)
    end
    return sw
end

演示:

> sw = make_stopwatch()
> =sw("start")
0
> =sw("lap")
16
> =sw "lap"
22
> =sw "lap"
28
> =sw "stop"
42
> = sw()
42
> = sw()
42
> = sw "start"
0
> = sw "lap"
8
>
2011-04-22 02:57:10