Предыдущая Следующая
{
Проект PauseGame 183
}
/// <summary>
/// Освобождаем ресурсы
/// <summary>
protected override void UnloadGraphicsContent(bool unloadAllContent) {
}
/// <summary>
/// Обновляем состояние игры /// <summary>
protected override void Update(GameTime gameTime)
{
if (GamePad.GetState(Playerlndex.One).Buttons.Back == ButtonState.Pressed) this.Exit();
Pause();
if (paused == false) {
double elapsed = gameTime.ElapsedGameTime.TotalSeconds; for (int i = 0; sprite.Length > i;
{
sprite[i].UpdateFrame(elapsed);
}
MoveSprite(); MovePlatform();
}
base.Update(gameTime);
}
/// <summary>
/// Движение спрайта по вертикали
/// <summary>
public void MoveSprite()
{ }
/// <summary>
/// Движение платформы по экрану /// <summary>
public void MovePlatform()
{ }
/// <summary> /// Пауза в игре /// <summary>
184 Работа с джойстиком
public void Pause()
if (GamePad.GetState(Playerlndex.One).Buttons.Start == ButtonState.Pressed)
pauseKeyDown = true;
else if (pauseKeyDown)
pauseKeyDown = false; paused = !paused;
/// <summary>
/// Рисуем на экране
/// <summary>
protected override void Draw(GameTime gameTime)
{ }
Из блока кода, направленного на обработку паузы в состоянии игры, видно, что мы сначала определяем состояние переменной paused, и если ее значение равно false (нет паузы), то выполняется содержимое блока if. Если состояние булевой переменной paused изменилось на true (пауза в игре), то выполнение блока if пропускается, что равносильно необновлению состояния игры, то есть игра замирает.
Чтобы выйти из этого состояния, достаточно второй раз нажать кнопку «Start» и в соответствии с исходным кодом метода Pause() значение булевой переменной paused изменяется на противоположное значение. Заметьте, что вызов метода Pause() в методе Update() совершается до строки кода выхода из программы.
if (GamePad.GetState(Playerlndex.One).Buttons.Back == ButtonState.Pressed) this.Exit();
Делается это намеренно, чтобы пользователь в режиме паузы мог свободно выйти из игры и закрыть программу.
Глава 10
Игровые столкновения
В играх объекты могут пересекаться друг с другом, или сталкиваться между собой. Такой вид пересечения объектов называется игровым столкновением. Для определения столкновения объектов в игре программисты пишут исходный код, который создает своего рода детектор столкновений. Если такое столкновение имеет место, то в игре необходимо производить определенные действия. Обработка ситуации при столкновении двух и более объектов между собой в играх может быть различной. В одних играх при столкновении вам придется уничтожать объекты, в других необходимо будет оттолкнуться от этого объекта, в третьих захватить этот объект и т. д., здесь все зависит от логики игры. Предыдущая Следующая
|