我找到了一个功能,可以获取自Mac启动以来的毫秒数:
U32 Platform::getRealMilliseconds()
{
// Duration is a S32 value.
// if negative, it is in microseconds.
// if positive, it is in milliseconds.
Duration durTime = AbsoluteToDuration(UpTime());
U32 ret;
if( durTime < 0 )
ret = durTime / -1000;
else
ret = durTime;
return ret;
}
问题在于,经过约20天后AbsoluteToDuration一直返回INT_MAX,直到Mac重新启动。
我尝试使用下面的方法,它能够解决问题,但是看起来gettimeofday需要更多的时间来减缓游戏速度。
timeval tim;
gettimeofday(&tim, NULL);
U32 ret = ((tim.tv_sec) * 1000 + tim.tv_usec/1000.0) + 0.5;
有没有更好的方法来获取自某个时刻以来的毫秒数(最好是自应用程序启动以来)?
谢谢!