Приставки
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
Команда Новости Помощь Ссылки
ПОМОЩЬ
Литература про игры
Предыдущая Следующая

menuPosition

new Vector2(0, 0);

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

case 1:

spriteBatch.Draw(cursorGame, cursorPositionGame, Color.White); spriteBatch.Draw(cursorExit, cursorPositionExit, Color.Yellow); break;

case 2:

spriteBatch.Draw(cursorGame, cursorPositionGame, Color.Yellow); spriteBatch.Draw(cursorExit, cursorPositionExit, Color.White); break;

Принцип работы метода DrawMenu() следующий. Вызывая этот метод в классе Game1, в качестве второго параметра мы будем передавать в метод переменную cursorState, которая, как вы помните, показывает, какая из команд в текущий момент выбрана. Затем на базе оператора switch происходит отбор нужного ветвления для выполнения исходного кода метода DrawMenu().

Если переменная cursorState равна 1, то это значит, что в данный момент активна команда Игра и выбрана верхняя табличка. Поэтому нижнюю табличку необходимо подкрасить цветом, а верхнюю - красим белым цветом. Как только состояние переменной cursorState изменяется на двойку, то работает блок кода case 2, и так до бесконечности, пока одна из команд не будет выбрана (команда Enter).

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

172 Создаем игровое меню

Проект Menu 173

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

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

12.2.2. Загружаем в игру меню

Начнем с того, что объявим в области глобальных переменных класса Gamel объект класса Menu и создадим две переменные menuState и cursorState для отслеживания состояния меню и выбранной пользователем команды.

Menu menu;

private bool menuState; private int cursorState;

После этих объявлений переходим в конструктор класса Gamel, где создаем полноценный объект menu класса Menu и инициализируем обе переменные.


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

Горяченькое

Друзья

Hosted by uCoz