对于我的游戏循环和某些动画,我想知道自上次调用 render: 方法以来经过的时间间隔。
为此,我使用 CADisplayLink 并获取当前时间戳并减去最后一次调用的时间戳。这应该给我两个帧/调用之间的正确时间间隔。
在模拟器中运行应用程序时,我得到了各种不同的间隔值,这看起来很好。但是,如果我在 iPad 上运行该应用程序,我只会得到两个不同的间隔值:0.000 和 0.125。大多数情况下,这两个值交替出现。
这是我用来确定间隔的代码。
// Time calculations (for animations and stuff)
_lastCallTime = _currentCallTime;
_currentCallTime = [displayLink timestamp];
float timeInterval = _currentCallTime - _lastCallTime;
NSLog(@"Time since last call: %f", timeInterval);
每次调用 render 方法时都会执行此代码。
这是 iPad 的一些限制,它不会给我的间隔时间提供准确的结果吗?