Cocos2d при запуске приложения дает случайное падение fps? - PullRequest
2 голосов
/ 05 января 2010

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

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

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

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

1 Ответ

2 голосов
/ 27 января 2010

Если кому-то интересно, это из-за ошибки при эмуляции 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];
...