Подтвердить что ты не робот

Почему пользователи cocos2d-iphone избегают использования расширения @2x?

Cocos2d-iphone использует расширение -hd для изображений Retina (и других активов). cocos2d Retina guide говорит лишь смутно о "некоторых несовместимостях" относительно @2x:

Apple использует суффикс "@2x", но cocos2d не использует это расширение из-за некоторых несовместимостей. Вместо этого у cocos2d есть свои суффикс: "-hd".

ВНИМАНИЕ: НЕ рекомендуется использовать суффикс "@2x". Apple рассматривает эти изображения особым образом, которые могут вызвать ошибки в вашем cocos2d приложение.

Великий. Я чувствую себя хорошо информированным.

Через 2-летний отчет об ошибке относительно @2x Я получил ссылку на форум, который предположительно объясняет проблемы с @2x. Однако это не так. Единственные намеки, которые я нашел там, - это ошибки iOS (4.0/4.1) относительно @2x, которые, я полагаю, больше не актуальны. Возможно, что я, возможно, пропустил какой-то важный аспект (были разговоры о кешировании или повторной загрузке) - поток очень длинный.

Я хотел бы знать, какие конкретные проблемы может возникнуть у разработчика cocos2d, если он использует суффикс @2x для изображений вместо -hd?

Просьба привести конкретные примеры вещей, которые могут пойти или на самом деле будут ошибочными.

4b9b3361

Ответ 1

Это, по-видимому, основная причина этой ссылки: http://www.cocos2d-iphone.org/forum/topic/12026

В частности, этот пост by riq:

Я не знаю, была ли исправлена ​​initWithContentsOfFile, но в 4.0 она была сломана, и она не работала с расширениями @2x, ~ iphone. imageNamed кэширует все загруженные файлы, поэтому он потребляет гораздо больше памяти, чем initWithContentsOfFile Также расширение @2x делает что-то (я точно не знаю), но он не работает нормально с cocos2d.

Еще один хороший момент: когда iPhone 4 был выпущен только с дисплеем сетчатки, я уверен, что некоторые пользователи Cocos2D использовали более старую версию, поэтому, когда пользователь использовал дисплей сетчатки в версии Cocos2D, "Нет, это было вдвое больше, чем следовало бы. Опять же, теперь это исправлено для большинства, если вы не используете ОЧЕНЬ раннюю версию Cocos2D.

Обзор, поэтому кажется, что основная проблема была связана с initWithContentsOfFile от iOS 4, но они исправили это, потому что я использую этот точный API с Cocos2D 2.0-rc2 в своем приложении, и у меня нет никаких проблем. Я использую все указанные Apple расширения для изображений, и все работает весело!:)

Ответ 2

Кажется, что это имеет исторический фон.

Что делает использование -hd-графики еще стоящим, так это то, что загрузка их не зависит от функциональности Apple, а скорее выполняется в рамках кода. So -hd можно загрузить для iPads в режиме iPhone Simulator и использовать изображения с более высоким разрешением в режиме 2x.

Кроме того, я не мог найти больше причин, чтобы не использовать @2x, когда я изучал это неделю назад.

Если вам нужны все подробности, вероятно, лучше всего сбросить riq по электронной почте.