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

ФКогда будете создавать конструкцию кода с использованием оператора switch, не забывайте в конце очередного блока case прописывать ключевое слово break. Иначе у вас вместо блочной работы этой конструкции будет происходить ее построчное выполнение.

Продолжаем разбор метода UpdateMouse() и, в частности, место присвоения булевым переменным menuState и levelState значения false. Назначенные действия ведут к выходу из игрового меню и к пропуску показа межуров-

222 Добавляем в игру новые уровни

Проект NewLevels 223

невого экрана. В свою очередь, переменная gameState получит значение, равное true, а значит, запустится работа игрового процесса.

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

if(totalScore >= endScore)

gameState = true;

if(keyboardState.IsKeyDown(Keys.B))

{

menuState = true; levelState = false; gameState = false;

gameState = false; menuState = false; levelState = true; tempLevel = level;

level += 1; if(level > 8)

level

1;

Здесь мы присваиваем переменной gameState значение false, для вывода из игрового процесса пользователя. Переменная menuState также имеет значение false, но она и имела это значение раньше, тут мы просто подстраховываемся на всякий случай. Далее переменная levelState получает значение, равное true, что приведет нас в дальнейшем (после выхода из этого блока кода) к выполнению метода LevelSelect() . В конце блока кода переменной tempLevel присваивается значение текущего уровня. Сам уровень увеличивается на единицу, а в блоке кода

if(level > 8) {

level = 1;

происходит проверка, достиг ли игрок последнего уровня. Если достиг, то сбрасываем level к первому уровню, если нет, то оставляем все как прежде.

Метод LevelSelect() следит за нажатыми пользователем клавишами и выбирает в связи с полученной информацией с устройства ввода определенные действия. В работе этого метода, думается, все предельно ясно, интересно другое -что показывает нам игра, когда работает межуровневый экран.

public void LevelSelect() {

if (keyboardState.IsKeyDown(Keys.A))

{

this.NewGame(level); menuState = false; levelState = false;

if (keyboardState.IsKeyDown(Keys.Escape))

this.Exit();

}

В методе Draw() класса Gamel, где происходит прорисовка графической составляющей, также формируется логическая конструкция, позволяющая выбирать, что именно показывать в конкретный игровой момент. Особенно интересно состояние игры на межуровневом промежутке, когда переменная levelState равна значению true. Этот приведенный ниже блок кода относится к межуровне-вому состоянию игры.


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

Горяченькое

Друзья

Hosted by uCoz