Предыдущая Следующая
{
gameState = CurentGameState.MenuScreen;
}
if (currentState.Buttons.A == ButtonState.Pressed && aReleased == true && stateVictory == 3)
{
this.Exit();
}
break;
} }
// Проверяем, нажата кнопка A или отпущена
if (currentState.Buttons.A == ButtonState.Pressed)
{
aReleased = false;
}
else if (currentState.Buttons.A == ButtonState.Released)
{
aReleased = true;
}
// Проверяем, нажат DPad.Down или отпущен
if (currentState.DPad.Down == ButtonState.Pressed)
360 Последние штрихи
{
downReleased = false;
}
else if (currentState.DPad.Down == ButtonState.Released)
{
downReleased = true;
}
// Проверяем, нажат DPad.Up или отпущен
if (currentState.DPad.Up == ButtonState.Pressed)
{
upReleased = false;
}
else if (currentState.DPad.Up == ButtonState.Released)
{
upReleased = true;
}
base.Update(gameTime);
}
21.5.3. Обновляем графику в методе Draw()
В методе Draw() класса Game1 на основе значения структурной переменной gameState происходит рисование того или иного экрана. Изначально при запуске игры переменная gameState равна CurentGameState.SplashScreen, и это значит, что первой на экране рисуется титульная заставка.
После нажатия кнопки А, обработка нажатия которой происходит в только что рассмотренном методе Update(), значение переменной меняется на CurentGameState.MenuScreen. После чего на экране рисуется меню игры, в котором в зависимости от выбранной команды (вверх или вниз) и нажатия кнопки А происходит изменение состояния всей игры.
protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(new Color(159, 147, 207)); switch(gameState)
{
case CurentGameState.SplashScreen:
{
splash.DrawScreen(spriteBatch, graphics, screenWidth, screenHeight); break;
}
В меню игры мы передаем переменную state. В зависимости от ее текущего значения для желтой подложки меню выбирается соответствующая позиция на экране телевизора, которая указывает пользователю на активную в данный момент команду меню.
Смена игровых состояний в классе Gomel
361
case CurentGameState.MenuiScreen: {
menuGame.DrawScreen(spriteBatch, graphics, screenWidth, screenHeight, gameTime, state); break;
}
case CurentGameState.HelpScreen:
{
help.DrawScreen(spriteBatch, graphics, screenWidth, screenHeight, gameTime); break;
}
case CurentGameState.AboutScreen:
{
about.DrawScreen(spriteBatch, graphics, screenWidth, screenHeight, gameTime); break;
}
case CurentGameState.BooksScreen:
{
books.DrawScreen(spriteBatch, graphics, screenWidth, screenHeight, gameTime); break; Предыдущая Следующая
|