2010-03-25 4 views
3

Это мой первый попыток сделать что-нибудь действительно интересное на C#, и я пытался создать простую форму или игровой экран, где пользователь мог бы определить пользовательское соотношение разрешения/экрана и т. Д. Или автоматически определять максимальный размер экрана/соотношение и выход? это моя первая игра, поэтому мне было интересно, возможно ли это или возникнут какие-то серьезные проблемы с этим, а не просто установить ее на 1366x768 (разрешение всех моих компьютеров). Заранее благодарим за любую помощь.XNA/C# Настройки игры (меню?)

ответ

3

Вы можете перечислить свойство DisplayModeCollection по умолчанию GraphicAdapter, чтобы найти DisplayMode с максимальной шириной/высотой/соотношением сторон.

Что-то вроде:

GraphicsAdapter defaultAdapter = GraphicsAdapter.DefaultAdapter; 
DisplayMode maxMode = defaultAdapter.DisplayModeCollection[0]; 
foreach (DisplayMode enumeratedDisplay in defaultAdapter.DisplayModeCollection) 
{ 
    //Test enumeratedDisplay against maxMode, setting maxMode to enumeratedDisplay if enumeratedDisplay is better 
} 

Может быть, есть лучший способ, но это, безусловно, один из способов вы можете найти макс.

Или вы можете взять тот же DisplayModeCollection и заполнить comboBox сорта или список, позволяя пользователю выбирать для себя.

Приносим извинения, если вышеуказанный код не работает в этой точной форме. Я не могу проверить его там, где я нахожусь

+0

Это большое спасибо, мне было интересно, могу ли я подключить Windows, чтобы пользователь мог выбрать разрешение экрана и соотношение сторон, чтобы работать в окне или полностью экран и т. д., но я не уверен, как бы сохранить настройки и загрузить их в игре, если форма была отдельным приложением, я хотел бы посмотреть на альтернативные решения, из-за использования нескольких раз, я думаю, это может быть проще , поскольку я мог бы заставить другие игры читать те же данные настроек из формы или файла, которые он создает таким образом. – PCAddict

+0

Вы можете технически прикрепить WinForms ... но это сложно. Я бы рекомендовал создать собственный пользовательский интерфейс и просто сохранить выбор в файле – Bob

1

Просто установите PreferredBackBuffer на номер 1366x768, и если графическое устройство сможет обрабатывать это разрешение, вы получите его. иначе вы получите что-то уменьшенное. xbox будет автоматически масштабироваться, если он необходим для поддержки используемого телевидения.

+0

Я искал, что он изменчив, поэтому мои друзья могут играть/тестировать, а также в разных системах. который был запросом о создании формы конфигурации или меню в самой игре. – PCAddict

+0

Я считаю, что вы можете в любой момент изменить предпочтительный задний буфер. Таким образом, вы можете легко создать пункт меню, который изменит это :-) –

Смежные вопросы