частота кадров cocos2D составляет всего 30, без каких-либо действий? - PullRequest
1 голос
/ 22 ноября 2011

У меня есть это в моем делегате приложения: [director setAnimationInterval:1.0/60];

Несмотря на это, мое приложение работает со скоростью 30 кадров в секунду. Что странно, так это то, что в настоящее время он абсолютно ничего не делает. init для моего единственного слоя не делает ничего, кроме добавления 6 спрайтов, основанных на изображениях, и без каких-либо действий или выполнения они просто отображаются на экране. Общий размер этих спрайтов составляет около 500 КБ. В симуляторе или на устройстве FPS отображает около 30.

Что может вызвать такую ​​низкую частоту кадров, когда в приложении больше ничего не происходит? Там нет запланированных обновлений и ничего не работает вообще; только что показанные спрайты.

1 Ответ

1 голос
/ 23 ноября 2011

Если ваши спрайты большие, и, возможно, повернуты или масштабированы или имеют непрозрачность <255, и вы используете это на более старом устройстве (1-го или 2-го поколения), то вы, возможно, просто столкнулись с ограничением производительности этих устройств. </p>

Вы можете улучшить производительность, в частности, если будете использовать большие спрайты или спрайты, которые вращаются и масштабируются, используя CCSpriteBatchNode и атлас текстуры, к которому вы добавляете каждый изизображения спрайта.Вы также можете уменьшить глубину цвета текстур с 32-битных до 16-битных или даже сжать PVR.

Если вы изменили какие-либо из параметров запуска по умолчанию: например, изменив буфер кадра с 16 бит на32-битная или включение глубинной буферизации также может снизить производительность.

Поскольку у вас есть только 6 спрайтов, не было бы интересно проверить, что произойдет, если вы запустите пример приложения с 5, 4, 3, 2, 1а спрайтов нет?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...