Я впервые пытаюсь сделать что-то действительно интересное на С#, и я пытался создать простую форму или игровой экран, где пользователь мог бы определить собственное разрешение/соотношение экрана и т. д., или автоматически определить максимальный размер экрана/соотношение и вывод? это моя первая игра, поэтому мне было интересно, возможно ли это или будут ли какие-либо серьезные проблемы с таким, а не просто установить его на 1366x768 (разрешение всех моих компьютеров). Спасибо заранее за любую помощь.
Настройки игры XNA/C# (меню?)
Ответы (2)
Вы можете перечислить по умолчанию GraphicAdapter DisplayModeCollection, чтобы найти ссылку 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 или список, позволяя пользователю выбирать для себя.
Приношу свои извинения, если приведенный выше код не работает именно в такой форме. Я не могу проверить это, где я сейчас
Просто установите PreferredBackBuffer на 1366x768, и если графическое устройство поддерживает это разрешение, вы его получите. иначе вы получите что-то уменьшенное. xbox автоматически масштабируется, если это необходимо для поддержки используемого телевизора.