MonoGame и MonoTouch на iOS — Альбомная ориентация

#c# #ios #xna #xamarin.ios #monogame

#c# #iOS #xna #xamarin.ios #моногейм

Вопрос:

Мы используем MonoGame для разработки для iOS и Windows Phone 7 (а затем, в конечном итоге, для Android).

Наша игра работает только в альбомной ориентации.

При запуске в эмуляторе WP7 на Windows, наше графическое устройство настраивается следующим образом, в Initialize() в нашей игре:

 graphics = new GraphicsManager(this);
graphics.PreferredBackBufferWidth = 480;
graphics.PreferredBackBufferHeight = 320;
graphics.SupportedOrientations = DisplayOrientation.LandscapeLeft | DisplayOrientation.LandscapeRight;
 

Это не точный размер экрана для WP7 (на данный момент у нас есть черная полоса справа, что не является нашей главной заботой), но дает нам правильный размер экрана, который будет работать на iPhone. Чтобы все выглядело правильно на iPhone, мы должны изменить ширину и высоту заднего буфера, что кажется очень странным.

Мы также обнаруживаем, что нам приходится изменять любые координаты X / Y и ширину / высоту на протяжении всей нашей игры.

С этим много проблем. Что именно здесь делает MonoGame?

Что рекомендуется для нас, чтобы справиться с очевидным изменением размера между этими 2 платформами? Мы хотели бы каким-то образом использовать одни и те же координаты по всем направлениям, если это возможно.

РЕДАКТИРОВАТЬ: в последней версии 2.0 MonoGame на GitHub больше нет проблем с ориентацией.

Жесты на сенсорной панели еще не совсем реализованы, поэтому мы просто избегаем этого.

Комментарии:

1. Понятия не имею, что делает MonoGame, но альтернатива, ExEn , отлично справляется с этим. Он полностью поддерживает SupportedOrientations настройку на iOS. Он будет обрабатывать все преобразования координат внутри (как и WP7). (Полное раскрытие: ExEn — это моя библиотека.)

2. Я собираюсь связаться с вашим адресом электронной почты по этой ссылке, у меня есть несколько вопросов по этому поводу. (С MonoGame определенно есть некоторые проблемы, которые заставляют нас рассмотреть платный вариант)

Ответ №1:

Похоже, вы используете старые исходные тексты MonoGame в codeplex, которые ExEn фактически раздвоил и стал коммерческим. Последний исходный код моногейма с открытым исходным кодом и правильная домашняя страница https://github.com/mono/MonoGame .

Не могли бы вы попробовать исходную версию оттуда и сообщить мне, если это все еще проблема. Мы готовимся к выпуску версии v1.6 MonoGame, и я хотел бы исправить это, если это все еще проблема.

Комментарии:

1. Я использую исходный код с GitHub. Я только что ссылался на их страницу codeplex, потому что это объясняет проект немного лучше.

2. У меня есть теория, которую я проверю завтра, я думаю, она может сработать, если вы настроите свое приложение только для портретной ориентации в Info.plist. Я протестирую это и сообщу вам о своих результатах.

3. Кстати, большинство разработчиков MonoGame зависают на канале #MonoGame на irc.gnome.org или irc.gimp.org . Даже Мигель Де Икаса иногда заглядывает, чтобы спросить, как у нас дела.

4. Ну, настройка Info.plist на портрет вроде сработала. После поворота симулятора один раз все начинает правильно определять размеры и позиционировать. Но приложение запускается с неправильными размерами. Я также заметил, что использование жеста двойного касания, похоже, приводит к сбою приложения, хотя оно отлично работает в эмуляторе WP7 в Windows. Я собираюсь изучить возможность подключения к IRC, а также попробовать образцы MonoGame, чтобы узнать, есть ли у них похожие проблемы.

5. Моногейм. Примеры. Образец TouchGesture имеет аналогичные проблемы с жестами, похоже, не совсем правильно работает в эмуляторе или устройстве. Я обновляю до Lion, последней версии XCode, MonoTouch и т. Д. прямо сейчас, единственное, о чем я могу думать, это может быть проблемой. Сейчас у меня Snow Leopard, XCode 3.2.6, но последняя версия MonoTouch / MonoDevelop.