2010-04-28 3 views
2

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

+0

Мне непонятно, что вы пытаетесь сделать. Когда вы пишете «Мои кадры 320x480», вы имеете в виду ваши спрайты? У вас есть 50-200 различных спрайтов 320x480, которые нужно отображать в одном кадре? Кажется очень. Вы знаете, что у вас может быть несколько спрайтов, каждый со своими спрайтами? Что вам нужно оживить? Вы пытаетесь сыграть в кино или что-то еще? Просьба уточнить, что вы пытаетесь сделать. Возможно, некоторые примеры кода тоже могут помочь. – nash

ответ

2

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

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

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

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

+0

Итак, как можно было бы запустить фильм с Cocos2D? Я имею в виду большую анимацию в полноэкранном режиме. – Samuel

+0

Воспроизведение фильма mpeg-4/mp4 с AVPlayer – LearnCocos2D

+0

Можете ли вы предоставить мне больше информации об этом подходе к AVPlayer? Он совместим с любой платформой (Android, iOS и т. Д.)? (все тексты, которые я нашел об этом, были связаны с игрой в iOS) – Samuel

Смежные вопросы