Предыдущая Следующая
Проект PauseGame 131
base.Update(gameTime);
}
/// <summary>
/// Движение спрайта по вертикали
/// <summary>
public void MoveSprite()
{
for (int i = 0; sprite.Length > i;
{
sprite[i].spritePosition += sprite[i].speedSprite;
if (sprite[i].spritePosition.Y > Window.ClientBounds.Height)
{
sprite[i].spritePosition = new Vector2(rand.Next(10, Window.ClientBounds.Width -
300 - sprite[i].spriteTexture.Width / 12), -500);
} } }
/// <summary>
/// Движение платформы по экрану
/// <summary>
public void MovePlatform()
{
if (keyboardState.IsKeyDown(Keys.Left))
platform.spritePosition.X -= 10; else if (keyboardState.IsKeyDown(Keys.Right))
platform.spritePosition.X += 10;
if (platform.spritePosition.X < 10)
platform.spritePosition.X = 10; else if (platform.spritePosition.X>Window.ClientBounds.Width - 400)
platform.spritePosition.X = Window.ClientBounds.Width - 400;
}
/// <summary>
/// Рисуем на экране
/// <summary>
protected override void Draw(GameTime gameTime)
{
graphics.GraphicsDevice.Clear(Color.CornflowerBlue); spriteBatch.Begin(SpriteBlendMode.AlphaBlend);
spriteBatch.Draw(background1, new Vector2(0, 0), Color.White); for (int i = 0; sprite.Length > i;
{
sprite[i].DrawAnimationSprite(spriteBatch);
}
spriteBatch.Draw(background2, new Vector2(0, 0), Color.White); platform.DrawSprite(spriteBatch); // верхний слой над тросом
spriteBatch.End();
base.Draw(gameTime);
} }
}
После того как вы откомпилируете и запустите проект Platform, вы увидите в нижней части платформу, которую можно передвигать клавишами Влево и Вправо. С неба на вас будут падать различные предметы и люди, которые вы должны ловить платформой, но на этом этапе, естественно, поймать вам ничего и никого не удастся, поскольку в игре еще не описан механизм игровых столкновений. Этим мы займемся в следующей главе, а здесь добавим еще несколько строк кода, для того чтобы сделать в игре режим паузы.
9.2. Проект PauseGame
Вводим в проект PauseGame две новые булевы переменные, объявление которых происходит в области глобальных переменных, чтобы переменные были доступны на любом участке исходного кода класса Game1.
private bool paused = false; private bool pauseKeyDown = false;
Эти две переменные будут отражать соответственно состояние паузы в игровом процессе и состояние нажатия заданной клавиши. На каждой новой итерации игрового цикла (метод Update() ) мы будем опрашивать клавиатуру и узнавать, нажата определенная клавиша или нет. Для паузы избрана стандартная в этом случае клавиша с изображением английской буквы «P». Предыдущая Следующая
|