Есть ли снижение производительности для больших CCSprites, которые в основном прозрачны? - PullRequest
1 голос
/ 24 июня 2011

У меня есть CCSprites, которые являются потомками CCParallaxNode, которые прокручиваются по горизонтали. Все они имеют одинаковый размер, то есть 2048X640 (для версий -hd, 1024X320 для не-hd), но они содержат большое количество прозрачности. Например, спрайт облаков представляет собой тонкий, тонкий слой облаков, а остальное прозрачно. Получу ли я удар по производительности, используя большое изображение - я должен урезать его до минимальной высоты и установить вертикальное положение вручную, а не класть все спрайты в начало координат?

ОБНОВЛЕНИЕ: Я обрезал все слои до их минимальной высоты (по-прежнему 2048 или 1024 ширины в зависимости от дисплея), и частота кадров изменилась с менее чем 30 до почти 50. Так что, да, большой успех!

Ответы [ 2 ]

2 голосов
/ 24 июня 2011

Вы, вероятно, получаете большой успех за это. Бьюсь об заклад, если вы обрежете изображения, вы увидите уменьшение размера файла, а также огромное уменьшение объема памяти, занимаемой изображениями.

Изображение с размерами 2048 x 640 будет сохранено как 2048 x 1024 ... что является массивным. Я полагаю, что такая большая текстура даже не поддерживается до 3GS. Неважно, что он в основном прозрачный, ему все равно нужно хранить всю текстуру.

1 голос
/ 24 июня 2011

Короткий ответ - да, вы получаете удар по производительности (даже если он минимальный).

Даже если полный Sprite фактически не отображается на экране, он действительно загружен в память.Вы должны изменить размер своих спрайтов, чтобы приспособиться к размеру экрана.

...