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 тук?

Какво се препоръчва за нас, за да се справим с очевидното преоразмеряване между тези 2 платформи? Бихме искали по някакъв начин да използваме едни и същи координати навсякъде, ако е възможно.

РЕДАКТИРАНЕ: Последната версия 2.0 на MonoGame в GitHub вече няма проблеми с ориентацията.

Жестовете на сензорния панел все още не са напълно внедрени, така че просто избягваме това.


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.

Можете ли да опитате изходната версия от там и да ме уведомите дали това все още е проблем. Подготвяме се за издание v1.6 на MonoGame и бих искал това да бъде поправено, ако все още е проблем.

person Dominique    schedule 22.10.2011
comment
Използвам източника от GitHub. Току-що се свързах към тяхната страница с codeplex, b/c обяснява проекта малко по-добре. - 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