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

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)


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

Горяченькое

Друзья

Hosted by uCoz