Предыдущая Следующая
ФКогда будете создавать конструкцию кода с использованием оператора 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. Этот приведенный ниже блок кода относится к межуровне-вому состоянию игры. Предыдущая Следующая
|