Создадим машины соперников, которые будут появляться в случайных координатах и двигаться на игрока.
Добавление и настройка машин
Добавим на форму два элемента PictureBox, представляющих машины соперников. Загрузим в них изображение машины (можно использовать любое изображение размером 128×128 пикселей). Установим свойство SizeMode на StretchImage. Изменим цвет фона PictureBox на 64, 64, 64. Переименуем PictureBox-ы в enemy1 и enemy2. Чтобы машины изначально были не видны, установим для них свойство Top равным -130 для enemy1 и -400 для enemy2.
Код движения и появления машин
В обработчике события таймера добавим код для движения и появления машин. Создадим переменную carSpeed (например, 7) для управления скоростью движения.
int carSpeed = 7;
enemy1.Top += carSpeed;
enemy2.Top += carSpeed;
if (enemy1.Top > 650)
{
enemy1.Top = -130;
enemy1.Left = new Random().Next(150, 300);
}
if (enemy2.Top > 650)
{
enemy2.Top = -400;
enemy2.Left = new Random().Next(300, 560);
}
Теперь машины будут постоянно двигаться сверху вниз, а после достижения нижней границы (650 пикселей) снова появляться сверху в случайном горизонтальном положении. Скорость игры можно настроить изменением значений carSpeed и интервала таймера.
Проверка столкновения
Добавим проверку столкновения игрока (player) с машинами-соперниками. Используем метод Bounds.IntersectsWith для проверки пересечения прямоугольников, ограничивающих объекты. При столкновении выключим таймер, завершив игру.
if (player.Bounds.IntersectsWith(enemy1.Bounds) || player.Bounds.IntersectsWith(enemy2.Bounds))
{
timer1.Enabled = false;
}
Игра завершается при столкновении с любой из машин. В последующих уроках будет добавлено более полное завершение игры с кнопкой перезапуска.
В этом уроке мы добавили в игру машины-соперники, которые двигаются и появляются в случайных местах. При столкновении с ними игра заканчивается. В следующих уроках мы улучшим игру.