Предыдущая Следующая
12.1. Планируем запуск меню
Сейчас при запуске игры мы сразу попадаем в игровой процесс, минуя какие-либо заставки. Течение всего игрового процесса начинается с вызова метода Update() класса Game1, и на основании полученных данных метод Draw() рисует графику на экране. Посему именно в методе Update(), где происходит обновление состояния игры, нам необходимо изначально запускать показ игрового меню, через которое проводить старт или выход из игры. То есть сначала необходимо вывести на экран меню и только потом запускать течение игрового процесса. Меню должно стать механизмом управления всей игры.
Методов реализации смены игровых состояний очень много. Мы воспользуемся одним из алгоритмов, основанных на проверке состояния булевой переменной menuState, которую объявим и инициализируем в исходном коде класса Game1. Эта переменная при старте игры будет иметь значение true. В этом слу-
166 Создаем игровое меню
Проект Menu 167
чае при старте игры в методе UpdateO достаточно создать проверку следующего условия:
Если menuState равно true то показываем меню Если нет то
начинаем игровой процесс
или на языке программирования С#:
if(menuState == true) {
// попадаем в меню игры
}
else{
// запускаем игру
}
Тогда при старте игры пользователь всегда будет попадать в меню, а уже с меню после выполнения заданной команды - запускать непосредственно сам игровой процесс. Чтобы реализовать из меню запуск игры, достаточно по определенной команде просто изменить состояние переменной menuState с true на false - и тогда блок кода с вызовом меню будет пропускаться, а выполняться будет другой блок кода, следующий за ключевым словом else. Как видите, в технике запуска меню особых сложностей нет. Теперь давайте перейдем к реализации первого проекта с названием Menu и поговорим о том, каким способом, или, точнее, какими клавишами, мы будем управлять работой меню.
ФВ третьей части книги вашему вниманию будет предложен другой, более профессиональный подход смены игровых состояний.
12.2. Проект Menu
Какие команды и клавиши у нас были отведены для управления игрой? Клавиша Esc закрывает игру, а клавиша с буквой P включает режим паузы, а ее повторное нажатие отменяет паузу в игре. Этого нам будет мало, придется добавить в игру еще несколько команд, но при этом необходимо строго разграничить их работу, поскольку, например, для выхода и запуска игры будет использоваться одна клавиша Enter. Посмотрите на рис. 12.1, где схематично показан предлагаемый механизм функционирования игры. Предыдущая Следующая
|