Cocos2d при запуске приложения дает случайное падение fps?

StackOverflow https://stackoverflow.com/questions/2004362

  •  18-09-2019
  •  | 
  •  

Вопрос

Я разрабатываю игру для iPhone, используя cocos2d, и в ней настроено отображение FPS.Теперь большую часть времени приложение запускается и работает со скоростью 60 кадров в секунду. Однако, по-видимому, иногда случайно приложение запускается и достигает максимальной скорости всего 40 кадров в секунду.

Это происходит не часто и, кажется, происходит только тогда, когда вы выходите из приложения и перезапускаете его как можно скорее, хотя в большинстве случаев это не вызывает эффекта.Но после нескольких быстрых последовательностей выхода и перезапуска игра в конечном итоге запускается и имеет только 40 кадров в секунду вместо обычных 60.Если я выйду из приложения в этот момент и подожду около 3 секунд, оно снова запустится с обычными 60 кадрами в секунду.

Я предполагаю, что это как-то связано с тем, что приложение не может освободить всю свою память перед повторным запуском? Похоже, эта проблема связана с ОС iPhone.

Важно отметить, что этого никогда не произойдет, если я выйду из приложения, подожду 5 секунд и перезапущу его.Была ли у кого-нибудь раньше такая проблема?Есть идеи, почему это может происходить?

Это было полезно?

Решение

Если кому-то интересно, это потому, что раньше была ошибка при эмуляции OPEN GL 2.0 в iPhone 3GS/iPod Touch 3G, это исправлено для OS 3.1.И все, что вам нужно сделать, это следующее:

// Try to use CADisplayLink director
// if it fails (SDK < 3.1) use Threaded director
if( ! [Director setDirectorType:CCDirectorTypeDisplayLink] )
    [Director setDirectorType:CCDirectorTypeThreadMainLoop];
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top