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

Добавим в игру логику 363

10% во% 10%

Рис. 21.7. Зона искажения телевизора

необходимо сосредоточить свое внимание. Дополнительно в нижней части выводится текущий уровень игры. На каждом новом уровне мы будем увеличивать скорость падения мячей.

Для контроля окончания игры по причине выигрыша уровня используется следующая конструкция кода:

if (scoreO >= 20 && score1 >= 20 && score2 >= 20)

{

gameState = CurentGameState.VictoryScreen; level += 1;

if (level > 8) level = 1;

}

В коде экран VictoryScreen представляет экран победы. Исходный код этого класса фактически идентичен заставкам и меню игры, с той лишь разницей, что на экране присутствуют всего три команды: Продолжить, Меню и Выход. Техника обработки этих команд идентична схеме работы меню игры. Этот код нужно вызвать в основном цикле игры, чтобы он обновлялся на каждой итерации. Полный исходный код окончательной версии игры вы найдете на компакт-диске в папке Code\Chapter21\Football_arrows.

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

if(ball[i].position.Y < -32)

{

ball[i].position.Y = ball[i].position.Y; gameState = CurentGameState.GameOverScreen; Sound.PlayCue(soundList.Over);

}

364 Последние штрихи

Здесь мы имеет также новую заставку GameOverScreen и новый класс GameOverScreen. Это класс однотипен и похож на все заставки и меню игры, разобраться самостоятельно с ним вам не составит труда. Единственное, на что я еще хочу обратить ваше внимание, - так это на новый механизм обработки нажатия кнопки джойстика Triggers.Right в классе Gamel.

Дело в том, что ситуация с длительностью удержания нажатия этой кнопки абсолютно аналогична рассмотренной нами ситуации с нажатием кнопки А. В связи с этим нам также необходимо добавить в код идентификатор отпускания нажатой кнопки Triggers.Right. Для этих целей используется та же методика, что и для кнопки.

Сначала объявляем в глобальных переменных новую булеву переменную triggersReleased со значением true.

bool triggersReleased = true;

А затем в методе GamePadClick() создаем проверку нажатия и отпускания кнопки Triggers.Right. Дополнительно в обработке событий по нажатии кнопки GamePadThumbSticks.Left было изменено цифровое значение, определяющее степень нажатия этой кнопки и скорость движения прицела по экрану.

void GamePadClick() {

GamePadState currentState = GamePad.GetState(Playerlndex.One);

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


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

Горяченькое

Друзья

Hosted by uCoz