Я занимаюсь разработкой 2D-игры для iPhone и iPod Touch с использованием OpenGL ES 1.1. Все работает нормально на iPhone, iPhone 3G и всех моделях iPod Touch. Игра обычно отображает сцены со скоростью ~ 60 FPS.
Это также происходит на iPhone 3GS, но иногда (это совершенно случайно) 3GS снижает частоту кадров до 40 кадров в секунду, и анимация кажется прерывистой. Это также происходит, если пользователь блокирует телефон и выходит из спящего режима.
Я думаю, что это как-то связано с NSTimer, потому что, если я изменю режим триггера отрисовки на новый класс CADisplayLink, доступный в SDK 3.1+, все в порядке на всех устройствах ... и на 3GS тоже.
Я не знаю, как решить эту проблему, и я не хочу публиковать свое приложение с ограничением 3.1+. Есть еще много пользователей с устройствами 3.0.
У кого-нибудь тоже есть такая проблема с iPhone 3GS? Если это так, пожалуйста, помогите мне с обходным путем.
Спасибо!