Мы используем 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 еще не совсем реализованы, поэтому мы их просто избегаем.
SupportedOrientations
на iOS. Он будет обрабатывать все преобразования координат внутри (точно так же, как WP7). (Полное раскрытие: ExEn — моя библиотека.) - person Andrew Russell   schedule 21.10.2011