Влияет ли свойство .visible на производительность? - PullRequest
3 голосов
/ 29 февраля 2012

Я могу включить значение .visible для CCNodes, но мне интересно, может ли невидимый узел потреблять меньше памяти / обработки, чем видимый? Могу ли я установить для свойства .visible значение NO, когда мой объекты находятся за пределами экрана для оптимизации? Или cocos2d уже делает это для меня?

Ответы [ 2 ]

4 голосов
/ 29 февраля 2012

Невидимые узлы обычно пропускаются при рендеринге.С другой стороны, узлы с видимым значением YES будут вызывать вызовы отрисовки OpenGL независимо от того, включены они или нет на экране (см. Комментарий Riq здесь ).то есть.Похоже, что cocos2d не выполняет никакой выборки для элементов вне экрана.

Если это действительно так, я бы просто установил visible = NO (без вреда и, безусловно, не сложно!), Если они полностью за кадром, чтобы избежать вызова дополнительных вызовов отрисовки.Также обратите внимание, что эти объекты закадрового узла все еще физически присутствуют и все еще занимают ту же память, даже если они имеют видимое значение NO.Кроме того, если эти узлы уже выполняют некоторые анимации / действия, они будут продолжать обновляться вне экрана, если вы не удалите их из расписания.

2 голосов
/ 29 февраля 2012

Проверьте эти сообщения с официального форума cocos2d

делает невидимые спрайты в spritebatchnode дешевыми?

Производительность Разница между visible = no и removeChild

Плохая производительность - много спрайтов с одинаковой текстурой

Кроме того, вы можете проверить это самостоятельно, но я думаю, что этот пост поможет.

Параметр IMO видимый = НЕТ достаточно, но зависит от количества спрайтов.

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