Поддержка нескольких размеров/разрешений/соотношений сторон экрана с помощью MonoGame

Каков рекомендуемый способ поддержки нескольких разрешений экрана/соотношений сторон на таких устройствах, как iPad, iPhone, телефоны с Windows и телефоны/планшеты на Android? Должен ли я просто использовать специальный код #if/#else для каждого устройства? Я не знаю, насколько хорошо это сработает. Особенно для телефонов/планшетов Android, которые бывают разных размеров. Любые указатели будут очень признательны.


person tamaslnagy    schedule 05.05.2012    source источник


Ответы (1)


Вот что мы делаем для нашей игры:

  • Все элементы меню или пользовательского интерфейса позиционируются в зависимости от размера экрана (мы реализуем горизонтальное и вертикальное выравнивание)
  • Все уровни прокручиваются, поэтому на некоторых устройствах вы просто видите меньше уровней за раз
  • Наши уровни также масштабируются на небольших устройствах, где это необходимо.
  • Создавайте фиксированные уровни (те, которые не прокручиваются), чтобы немного неиспользуемого пространства оставалось по краям экрана. Таким образом, на некоторых устройствах его можно обрезать без проблем.
  • Сделать 3 размера изображений: маленький (3GS), средний (iPhone 4, Android, WP7, iPad), большой iPad3
  • Позиционируйте спрайты/элементы пользовательского интерфейса в зависимости от размера изображения
  • Воспользуйтесь преимуществами схемы именования изображений @2x.
  • Мы сделали версию приложения только для iPhone и только для iPad, это помогает в том, что нужно всего лишь поместить 2 набора изображений в каждое приложение.

Лучше всего использовать размер экрана для позиционирования. Возможность центрировать или пристыковывать к нижней или правой части экрана также очень полезна в целом.

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

person jonathanpeppers    schedule 06.05.2012
comment
Все это похоже на хорошую практику. Есть ли хорошая библиотека меню на основе xna? Или я должен написать свои собственные макеты и выравнивания? - person tamaslnagy; 07.05.2012
comment
Было не так уж сложно свернуть наши собственные. Выравнивания просто вычисляют положение X и Y, а щелчок был просто вопросом проверки Mouse или TouchPanel и границ элемента управления. - person jonathanpeppers; 07.05.2012
comment
Истинный. Однако написание макета и выравнивания довольно избыточно, и я надеялся, что для этой цели может быть библиотека. Спасибо за вашу помощь - person tamaslnagy; 10.05.2012