cocos2d что-то странное с весом спрайта - PullRequest
0 голосов
/ 06 сентября 2011

Вот мой вопрос.Пустой проект cocos2d имеет вес 3,38 МБ (стандарт «Hello world»).Я проверяю это с помощью Profile-> Allocate Kit.Теперь у меня есть изображение .png размером 382x512 пикселей.Он будет расширен до 512x512 в ОЗУ (2 градуса).Я добавляю этот файл в проект так:

CCSprite * sprite = [CCSprite spriteWithFile: @ "mySprite.png"];

А теперь самое интересное.«mySprite.png» имеет формат 8888 пикселей, то есть он должен занимать 512x512 = 0,5 * 0,5 = 0,25 МБ * 4 = 1 МБ (4–4 байта от формата пикселей).Я прав?Я так думаю, но когда я проверил, сколько весит проект, я обнаружил, что проект имеет 5,54 МБ, то есть «mySprite» занял> 2 МБ в ОЗУ.

Что я делаю не так?И как я могу это исправить?: / Thx.

1 Ответ

0 голосов
/ 23 января 2012

Я помню, что читал где-то об этом.Я прошел через форумы cocos2d и нашел этот пост: http://www.cocos2d -iphone.org / forum / topic / 4510

Вы должны проверить объяснение Карла, которое, кажется, имеет смысл для меня:

Это занимает 8 МБ, поскольку подпрограмма загрузчика использует ОС для загрузки UIImage, а затем копирует пиксели во вновь выделенный буфер в дружественном к GL 32-битном формате.Это означает, что вашему изображению размером 1024x1024 потребуется 8 МБ для загрузки, но 4 МБ из этого следует освободить после освобождения UIImage ...

...