MonoGame и MonoTouch на 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?

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

EDIT: в последней версии 2.0 MonoGame на GitHub больше нет проблем с ориентацией.

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


person jonathanpeppers    schedule 21.10.2011    source источник
comment
Не знаю, что делает MonoGame, но альтернатива, ExEn, прекрасно с этим справляется. Он полностью поддерживает настройку SupportedOrientations на iOS. Он будет обрабатывать все преобразования координат внутри (точно так же, как WP7). (Полное раскрытие: ExEn — моя библиотека.)   -  person Andrew Russell    schedule 21.10.2011
comment
Я свяжусь с вами по электронной почте по этой ссылке, у меня есть несколько вопросов по этому поводу. (Определенно есть некоторые проблемы с MonoGame, которые заставляют нас рассматривать платный вариант)   -  person jonathanpeppers    schedule 21.10.2011


Ответы (1)


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

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

person Dominique    schedule 22.10.2011
comment
Я использую исходники с GitHub. Я только что связался с их страницей codeplex, т. к. она немного лучше объясняет проект. - person jonathanpeppers; 22.10.2011
comment
У меня есть теория, которую я проверю завтра, я думаю, она может сработать, если вы настроите свое приложение для портрета только в Info.plist. Я проверю это и сообщу вам о своих результатах. - person jonathanpeppers; 22.10.2011
comment
Кстати, большинство разработчиков MonoGame общаются на канале #MonoGame на irc.gnome.org или irc.gimp.org. Даже Мигель Де Икаса иногда заглядывает, чтобы спросить, как у нас дела. - person Dominique; 22.10.2011
comment
Что ж, настройка Info.plist на портрет сработала. После одного поворота тренажера все начинает правильно масштабироваться и позиционироваться. Но приложение запускается с неправильным изменением размера. Я также заметил, что использование жеста двойного касания, похоже, приводит к сбою приложения, хотя оно отлично работает в эмуляторе WP7 в Windows. Я собираюсь попробовать подключиться к IRC, а также попробовать образцы MonoGame, чтобы увидеть, есть ли у них похожие проблемы. - person jonathanpeppers; 22.10.2011
comment
Образец MonoGame.Samples.TouchGesture имеет аналогичные проблемы с жестами, похоже, он не совсем правильно работает в эмуляторе или на устройстве. Я обновляюсь до Lion, последней версии XCode, MonoTouch и т. д. прямо сейчас, и это единственное, о чем я могу думать, что это может быть проблемой. Сейчас у меня Snow Leopard, XCode 3.2.6, но последняя версия MonoTouch/MonoDevelop. - person jonathanpeppers; 22.10.2011
comment
Мой Mac обновлен, но у меня все те же проблемы. Попробую выйти в IRC. - person jonathanpeppers; 24.10.2011