1

Love2Dを使用して友達と私のために小さなゲームを作成していますが、問題があります。フレームレートに関係なく、経過時間を計算したいのです。私はこれを試していますが、わずかなエラーが追加され、最終的に「秒」が1/100秒で経過します。

local last_time = os.time()

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

2 に答える 2

5

プログラムの開始時、またはいつでも開始時(starting_time = os.time())に時間をマークして、「現在の経過時間」はos.time()-starting_timeになります。蓄積は必要ありません...

于 2011-04-22T02:46:47.430 に答える
2
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-22T02:57:10.787 に答える