Cocos2D SpriteSheet проблема с анимацией, мое количество кадров намного больше - PullRequest
2 голосов
/ 28 апреля 2010

Я пытаюсь использовать SpriteSheet для запуска анимации. Мои кадры имеют размер 320х480, поэтому я могу разместить максимум 6 кадров на текстурном изображении. Но моя анимация состоит из кадров с номерами от 50 до 200, иногда размером 320х480. Но такое большое количество кадров нельзя добавить к изображению текстуры, так как размер ограничен 1024x1024. Есть ли другой подход, который я могу попробовать. Могу ли я воспроизводить одну анимацию за другой? И это не помешает работе. Пожалуйста, мне нужны предложения. Лучший, Вайбхав Текам.

1 Ответ

2 голосов
/ 31 июля 2010

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

На каждую текстуру 1024x1024 с 32-битными цветами требуется 4 МБ памяти. Если вам нужна спрайтовая анимация, состоящая из 60 полноэкранных спрайтов, вам нужно 10 таких текстур. Это составляет 40 МБ памяти. Или 120 МБ для сценария в верхнем регистре с 180 кадрами анимации.

Имейте в виду, что модели памяти RAM объемом 128 МБ на устройствах iOS имеют около 30 МБ памяти, доступной для вашего приложения, максимум и при идеальных условиях. Вы начнете сталкиваться с проблемами с памятью только с пятью текстурами 1024x1024. Устройствам на 256 МБ все еще доступно только около 100 МБ для вашего приложения.

Поскольку предполагается, что это анимация, также нельзя загружать одну текстуру, а после каждого шестого изображения удалять эту текстуру и загружать следующую. Загрузка текстуры 1024x1024 в память занимает около 1-3 секунд в зависимости от устройства. Ваше приложение будет безответственным в течение этого времени.

...