Как обновить 2D-игру для iPhone, чтобы она была совместима с дисплеем Retina на iPhone 4?

Каковы необходимые шаги для обновления существующей 2D-игры для iPhone на основе OpenGL ES 1.1, чтобы она была совместима с дисплеем Retina на iPhone 4? Я все еще использую класс Texture2D, который появился в CrashLanding от Apple (загрузить ) образец кода.

После прочтения документация Apple, просмотр видео WWDC (сеанс 134 «Оптимизация приложения iPhone для дисплея Retina») и просмотр Пример кода Cocos2D Я все еще не понимаю.

Я считаю, что необходимые шаги включают:

  • передача обложек в высоком разрешении (с добавлением "@ 2x") в [UIImage imageNamed:@"image.png"]
  • изменение "contentScaleFactor" с 1.0 на 2.0 (где?)
  • обновление аргументов до glOrthof для включения contentScaleFactor
  • регулировка размера glViewport

Обратите внимание, что я относительно новичок в OpenGL.

Спасибо за вашу помощь!


person MrDatabase    schedule 26.07.2010    source источник
comment
Просто чтобы убедиться ... У вас установлен glViewport на правильный размер для большого экрана? Если бы у вас все еще был установлен низкий размер, могли произойти странные вещи. Также убедитесь, что ваши орто-числа верны.   -  person Moncader    schedule 30.07.2010


Ответы (1)


Вы должны оставить изображение 320x480, а для изображения 640x960 указать другое имя. Предположим, что изображение 320x480 называется foo.png, затем назовите изображение 640x960 [email protected].

Затем система автоматически выберет на iPhone 4 разрешение с более высоким разрешением без каких-либо изменений кода - при условии, что вы использовали [UIImage imageNamed:@"foo.png"].

person kennytm    schedule 26.07.2010
comment
Хорошо спасибо. Дополнительные изображения с именами @ 2x загружаются на iPhone 4 (а не на 3G ... как ожидалось). Однако изображение в высоком разрешении намного больше, чем экран на iPhone 4. Думаю, мне нужно настроить contentScaleFactor ... Я просто не знаю, где именно. - person MrDatabase; 26.07.2010
comment
MyUIView.contentScaleFactor - это то, что вы ищете - установите для него значение 2.0 - person pop850; 01.08.2010
comment
Гм. Этот ответ не имеет ничего общего с вопросом - он касался OpenGL. - person Jonny; 09.05.2012