Вопрос по – Cocos2d 2.0 - 3 цифры слева внизу

13

У меня есть 3 цифры в нижней левой части экрана в моем проекте Cocos2D 2.0:

82
0.016
60.0

60, вероятно, FPS, а как насчет двух других? Насколько я помню, в предыдущих версиях Cocos был только номер FPS.

Есть какие-нибудь подсказки? Спасибо

вот оно SpaceDog
ХОРОШО. Благодарю. Оставьте свои комментарии как ответ, чтобы я мог принять ... SpaceDog
Главное число, которое я считаю, это число спрайтов. Середина, в которой я не уверен. SimplyKiwi
это имеет смысл ... 82 спрайта. Правильно. Если это помогает, среднее число колеблется между 0,016 и 0,017 ... SpaceDog
Если я правильно помню, это миллисекунды для чего-то. Может быть, миллисекунды FPS? Но середина не имеет большого значения, только верх и низ действительно имеют значение. SimplyKiwi

Ваш Ответ

2   ответа
37
82    <-- number of draw calls
0.016 <-- time it took to render the frame, here: 1.0/60.0 = 60 fps
60.0  <-- frames per second

Первое число (82) - это количество розыгрышей (что довольно много). Обычно каждый узел, который отображает что-то на экране (спрайты, метки, частицы fx и т. Д.), Увеличивает это число на единицу. Вызовы на розыгрыш дорогостоящие, поэтому очень важно сохранить этот номер. Одним из способов сделать это является пакетный вызов вызовов - cocos2d v3 делает это автоматически.

Время, необходимое для визуализации кадра, в секундах. Так как вам нужно рисовать новый кадр каждые 0,016666666 секунд, чтобы достичь 60 кадров в секунду (1/60 = 0,0166…) это просто обратная частота кадров.

Последнее число - это число кадров в секунду, также известное как частота кадров, также известное как fps. Это значение, как и предыдущее, усредняется по нескольким кадрам, так что оно не колеблется так сильно.

Обратите внимание, что на устройствах iOS всегда включена VSynch (вертикальная синхронизация). Игра может воспроизводить кадр каждые 0,0166 секунды - если для вычисления каждого кадра требуется 0,017 секунды, частота кадров фактически уменьшается вдвое до 30 кадров в секунду. Вы можете использовать fps только в конкретных шагах: 60, 30, 20, 15, 12, 10 ...

Поскольку отображение fps усредняется по паре кадров, это скрывает этот факт. Таким образом, если статистика показывает 45 кадров в секунду, это будет последовательность кадров, где каждый второй кадр занимал более 0,0166 секунды. В числах кадров в секунду отдельные кадры в самых последних кадрах были бы: 60, 30, 60, 30, 60, 30.

большое спасибо. На самом деле это приложение не очень оптимизировано прямо сейчас, но это будет. Оптимизация - это вообще последнее, что я делаю. Спасибо за объяснения. SpaceDog
2

Верхнее число - это количество спрайтов в вашем CCLayer и т. Д.

Середина - это миллисекунды FPS.

Внизу, конечно, ваш FPS! :)

Верхний номер - это количество вызовов отрисовки, а не количество спрайтов.
каждый нарисованный объект создает вызов рисования, т.е. каждая метка, спрайт, каждая система частиц, каждый узел пакета добавляет 1 вызов рисования. Вызов Draw - это изменение состояния в opengl, а изменение состояний (то есть рисование из другой текстуры) - дорогостоящая операция. Тем более, чем больше текстура.
@ LearnCocos2D В чем разница между одним и другим?

Похожие вопросы