Има ли наказание за производителност за големи CCSprites, които са предимно прозрачни?

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

АКТУАЛИЗАЦИЯ: Подрязах всички слоеве до техните минимални височини (все още широки 2048 или 1024 в зависимост от дисплея) и скоростта на кадрите премина от по-малко от 30 до близо 50. Така че, да, голям успех!


person Steve    schedule 24.06.2011    source източник


Отговори (2)


Вероятно понасяте голям удар на производителността за това. Обзалагам се, че ако намалите изображенията, ще видите спад в размера на файла, както и огромен спад в количеството памет, което изображенията заемат.

Изображение с размери 2048 x 640 ще бъде съхранено като 2048 x 1024... което е огромно. Вярвам, че толкова голяма текстура дори не се поддържа от нищо преди 3GS. Няма значение, че е предимно прозрачен, все пак трябва да съхрани цялата текстура.

person Michael Fredrickson    schedule 24.06.2011
comment
изображение 2048x640 ще бъде съхранено като 2048x1024. - person Andrew; 24.06.2011
comment
@Andrew - това означава ли, че заделя място за най-малката степен на числото 2, което е по-голямо от изображението? Ако изряза изображение до 2048X100, ще се съхрани ли като 2048X128? - person Steve; 25.06.2011

Краткият отговор е да, вие получавате удар в производителността (дори и минимален).

Дори пълният Sprite да не се показва на екрана, той наистина е зареден в паметта. Трябва да промените размера на вашите спрайтове, за да ги настроите към размера на екрана.

person Oscar Gomez    schedule 24.06.2011