Приставки
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 (keyboardState.IsKeyDown(Keys.Up) == true && upReleased == true)

{

state -= 1;

if (state < 1) state = 5;

}

В этой конструкции кода мы создаем обработку условия для нажатия клавиши с командой вверх (Keys.Up). Механизм изменения значения переменной state одинаков, как и в случае с командой вниз, с той лишь разницей, что изменение state ведется в обратную сторону.

В следующем блоке кода происходит обработка нажатия клавиши Enter. В зависимости от текущего значения переменной state (которая меняется по нажатии клавиш «вверх» и «вниз» и соответствует одной из выбранных команд меню) происходит изменение значения gameState, а значит, и выбор нового игрового состояния.

if (keyboardState.IsKeyDown(Keys.Enter) && enterReleased == true && state == 1)

{

gameState = CurentGameState.GameScreen;

}

if (keyboardState.IsKeyDown(Keys.Enter) && enterReleased == true && state == 2)

{

gameState = CurentGameState.HelpScreen;

}

if (keyboardState.IsKeyDown(Keys.Enter) && enterReleased == true && state == 3)

{

gameState = CurentGameState.AboutScreen;

}

if (keyboardState.IsKeyDown(Keys.Enter) && enterReleased == true && state == 4)

{

gameState = CurentGameState.BooksScreen;

}

if (keyboardState.IsKeyDown(Keys.Enter) && enterReleased == true && state == 5)

{

this.Exit();

}

break;

}

Для обработки нажатия клавиши Enter можно также использовать более упрощенную схему исходного кода, например вот такую:

if (keyboardState.IsKeyDown(Keys.Enter))

{

if (enterReleased == true && state == 1)

{

gameState = CurentGameState.GameScreen;

}

if (enterReleased == true && state == 2)

{

gameState = CurentGameState.HelpScreen;

}

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

Смена игровых состояний в классе Game1

353

if (enterReleased == true && state == 3)

{

gameState = CurentGameState.AboutScreen;

}

if (enterReleased == true && state == 4)

{

gameState = CurentGameState.BooksScreen;

}

if (enterReleased == true && state == 5)

{

this.Exit();

}

}

Далее в исходном коде класса Game1 и метода Update() в зависимости от значения структурной переменной gameState происходит обновление состояния игры.

case CurentGameState.HelpScreen:

{

if (keyboardState.IsKeyDown(Keys.Escape)) gameState = CurentGameState.MenuScreen;

break;

}

case CurentGameState.AboutScreen:

{

if (keyboardState.IsKeyDown(Keys.Escape)) gameState = CurentGameState.MenuScreen;


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

Горяченькое

Друзья

Hosted by uCoz