내 게임 루프 및 특정 애니메이션의 경우 내 렌더링의 마지막 호출 이후에 경과 한 시간 간격을 알고 싶습니다.CADisplayLink 타임 스탬프가 장치에서 이상하게 작동 함
이 경우 나는 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의 일부 제한 사항입니까, 제 시간에 정확한 결과를 제공하지 않습니까?
그건 속임수 였어. 답변 주셔서 감사합니다! :) – Mauin