Загрузка только видимых областей большого изображения в cocos2d

Мы используем cocos2d для отображения большого изображения, которое состоит из трех разных слоев параллаксинга в приложении для iPhone/iPad. Пользователь сможет панорамировать это большое изображение.

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

Включает ли cocos2d что-нибудь, что поможет нам в этом? Мы рассмотрели использование карт Tile (у нас есть прототип, запущенный на CCTMXTiledMap), но похоже, что это не очень хорошее применение карт плитки, поскольку они обычно используются для больших карт/изображений, которые состоят из повторяющиеся меньшие изображения; тогда как каждая плитка в наших больших изображениях будет уникальной.

У кого-нибудь есть яркие идеи о лучшем способе сделать это?

1 ответ

Я помню, как я видел сообщение в блоге, где у программиста iPhone есть загрузка изображений в фоновом потоке при прокрутке экрана. Он сказал, что пока прокрутка не слишком быстро, это не проблема для достижения гладкой прокрутки.

Вы в основном загружаете разделы изображений, основываясь на том, куда прокручивается экран, и освобождайте изображения, которые покидают границу экрана. Таким образом, будет сам экран, а граница вокруг краев экрана будет действовать как буфер в случае, если игрок идет туда и обратно (слева или справа и т.д.).

Хотел бы я найти ссылку, но после поиска 30 минут я сдался. Я видел его видео, и он прокручивался очень гладко.

licensed under cc by-sa 3.0 with attribution.