Приставки
Nintendo (Dendy)
Nintendo 64
Sega Genesis
Sega CD / 32x
Master System
Super Nintendo
Turbo Grafx 16
Sega Saturn
Sony PlayStation
GameBoy Advance
GameBoy / Color
Game Gear
Atari
Другие

Утилиты
Системные утилиты
GoodXXXX
Sega CD / 32x
Nintendo 64
Переводы, хакинг
Музыка

Мир приставочных игр

Версия 2.00a

Leonis © 2002-2009
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

protected override void Initialize() {

GraphicsAdapter adapter =

270 Смена игровых состояний

Улучшаем смену игровых состояний 271

graphics.GraphicsDevice.CreationParameters.Adapter;

graphics.PreferredBackBufferWidth = adapter.CurrentDisplayMode.Width; graphics.PreferredBackBufferHeight = adapter.CurrentDisplayMode.Height; graphics.IsFullScreen = true; graphics.ApplyChanges();

screenWidth = graphics.PreferredBackBufferWidth; screenHeight = graphics.PreferredBackBufferHeight; base.Initialize();

}

Работа предложенного блока кода, а в частности, применение класса GraphicsAdapter на начальном этапе инициализации игры, возможна только в методе Initialize(). Если вы попробуете использовать этот класс в конструкторе класса Gamel, то компилятор моментально выдаст вам ошибку компиляции. Настраивать разрешение экрана (автоподбор или ручной подбор разрешения классом GraphicsAdapter) можно только от метода Initialize() или с помощью других методов сторонних классов, которые все равно должны выполняться лишь после окончания работы конструктора класса Gamel .

Для того чтобы использовать определенное разрешение экрана, нам необходимо сначала получить эти искомые параметры. Для этих и других целей в XNA существует класс GraphicsAdapter, представляющий на программном уровне графический видеоадаптер компьютерной системы.

В первой строке кода метода Initialize() создается объект adapter класса GraphicsAdapter, который получает все технические параметры видеоадаптера, в том числе и разрешение экрана.

GraphicsAdapter adapter =

graphics.GraphicsDevice.CreationParameters.Adapter;

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

graphics.PreferredBackBufferWidth = adapter.CurrentDisplayMode.Width; graphics.PreferredBackBufferHeight = adapter.CurrentDisplayMode.Height;

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

Затем в исходном коде метода Initialize() происходят установка полноэкранного режима отображения информации на дисплее, получение графического состояния, а две новые переменные screenWidth и screenHeight инициализируются значениями ширины и высоты дисплея. Две эти новые переменные впоследствии нам понадобятся для работы с матрицами. Запустите проект Screen и проверьте работу предложенного механизма на практике.


Предыдущая Следующая

Горяченькое

Друзья

Hosted by uCoz