有没有办法衡量游戏中的特定时间?例如,我想测量玩家按下播放按钮后直到他输掉/赢得比赛的时间。我知道我应该使用os.time()但是如何测量游戏中间的时间?所以它会是这样的:
local startTime=os.time()
local gameStart = os.time()-startTime
local gameEnd = os.time()-gameStart
gameStart是玩家按下开始按钮的时间。 游戏结束时玩家正在玩游戏直到他输了或赢了。
答案 0 :(得分:1)
是的,那是完全正确的。
每当您想要测量时间间隔时,只需从当前时间中减去startTime
。但是,请务必使用system.getTimer()
函数,因为它具有毫秒精度:
local startTime = system.getTimer()
-- some time later ...
local interval = system.getTimer() - startTime
在旁注中,根据Lua 5.1 Reference,有一个很好的理由避免减去日期:
返回的值是一个数字,其含义取决于您的系统。在POSIX,Windows和其他一些系统中,此数字计算自某个给定开始时间(“epoch”)以来的秒数。 在其他系统中,未指定含义,
time
返回的数字只能用作date
和difftime
的参数。