Предыдущая Следующая
if (currentState.DPad.Down == ButtonState.Pressed && downReleased == true)
{
state += 1;
Для того чтобы значение переменной не было больше пяти или не выходило за пределы пяти команд, создана следующая проверка условия.
if (state > 5) state = 1;
}
В этом случае если state станет больше пяти, то ей будет присвоено значение, равное единице. То есть как только позиция подложки на экране станет больше позиции, отведенной для пятой и последней команды меню, желтая текстура получит позицию, равную первой команде. Таким образом, желтая подложка меню будет перемещаться по командам меню циклично сверху вниз, а в следующем блоке кода - и снизу вверх.
if (currentState.DPad.Up == ButtonState.Pressed && upReleased == true)
{
state -= 1;
if (state < 1) state = 5;
}
В этой конструкции кода мы создали обработку условия для нажатия GamePadDPad. Механизм изменения значения переменной state одинаков, как и в случае с командой вниз, с той лишь разницей, что изменение state ведется в обратную сторону.
В следующем блоке кода происходит обработка нажатия кнопки А. В зависимости от текущего значения переменной state (которая меняется по нажатии GamePadDPad и соответствует одной из выбранных команд меню) происходит изменение значения gameState, а значит, и выбор нового игрового состояния.
// Нажимаем кнопку А
if (currentState.Buttons.A == ButtonState.Pressed&saReleased ==true&&state == 1)
{
this.NewGame(level);
gameState = CurentGameState.GameScreen;
}
if (currentState.Buttons.A == ButtonState.Pressed&saReleased ==true&&state == 2)
{
gameState = CurentGameState.HelpScreen;
}
if (currentState.Buttons.A == ButtonState.Pressed&saReleased ==true&&state == 3)
Смена игровых состояний в классе Gomel
357
{
gameState = CurentGameState.AbouitScreen;
}
if (currentState.Buttons.A == ButtonState.Pressed&saReleased ==true&&state == 4)
{
gameState = CurentGameState.BooksScreen;
}
if (currentState.Buttons.A == ButtonState.Pressed&saReleased ==true&&state == 5)
{
this.Exit();
}
break;
}
Для обработки нажатия кнопки А можно также использовать более упрощенную схему исходного кода, например вот такую.
if(currentState.Buttons.A == ButtonState.Pressed)
{
if(aReleased == true && state == 1)
{
gameState = CurentGameState.GameScreen;
}
if(aReleased == true && state == 2)
{
gameState = CurentGameState.HelpScreen;
}
if(aReleased == true && state == 3) Предыдущая Следующая
|