2011-01-18 7 views
0

Интересно, есть ли функция времени в SDK яблок, которая гарантированно будет монотонно увеличиваться? Я слышал о [NSDate timeIntervalSinceReferenceDate] (что неточно) и функции c mach_absolute_time.Как открыть анимацию на GG на iPhone?

Как все эти люди определяют время их анимации в openGL ES (есть ли независимое от кадра решение)?

ответ

1

Я использую CADisplayLink для синхронизации моей анимации. Когда вы создаете новый проект opengl-es на xCode, он даст вам примеры кодов opengl-es и управляет анимацией с помощью CADisplayLink. alt text

EDIT:

я обнаружил, что неправильно понимают эту проблему. Я проверяю метод CFAbsoluteTimeGetCurrent() на этом apple on-line doc, и он сказал, что способ может быть не монотонно возрастающим. И метод CACurrentMediaTime(), который я предпочитаю производное значение mach_absolute_time(). Документ о CACurrentMediaTime() - on this link.

+0

CADisplayLink не даст вам точные тайминги, если пропускать кадры. – nornagon

1

Для времени, не зависящего от частоты кадров, я обычно использую функцию CFAbsoluteTimeGetCurrent(). Он возвращает CFAbsoluteTime (который, я считаю, typedef'd равен double), так как некоторая дата была сколь угодно далеко в прошлом.