Создаём игру в Visual Studio: «The Dark Castle» (урок для начинающих) — Компьюпико.ком

Создаём игру в Visual Studio: «The Dark Castle» (урок для начинающих)

В предыдущих статьях Как стать разработчиком игр и Создаём контент для игры «The Dark Castle»: пошаговое руководство мы занимались теорией и контентом. Настало время практики. В этом уроке мы будем писать код в Visual Studio. Писать будем на C# с использованием технологии .Net Framework. Для начала скайте и установите Visual Studio Community Edition. Затем запустите Visual Studio и создайте новый проект со следующими параметрами:

Visual Studio. Configure new project
  1. Нажмите Create a new project (создать новый проект)
  2. Выберите тип проекта «Windows Forms App (.Net Framework)
  3. Нажмите Next (далее)
  4. Назовитье проект в поле Project Name (например, TheDarkCastle как на скриншоте ниже).
  5. Нажмите Create (создать)
Visual Studio. Configure new project
Visual Studio. Настройка нового проекта

Будет создан новый проект. Вы увидите главное коно Visual Studio с только что созданным проектом. Галвное окно Visual Studio состоит из следующих частей:

  1. Конструктор форм (Form1 [Design] визуализация того, как будет выглядить ваша форма)
  2. Solution Explorer (дерево проекта)
  3. Properties (Настройки)
  4. Output window (Строка сообщений)
  5. Инструменты (Toolbox tab)
Перейти на сайт
Реклама

Главное меню

Давайте создадим меню для нашей будущей игры. Откройте вкладку инструменты(Toolbox) на боковой панели и выберите объект PictureBox. Затем кликните в любом месте формы для размещения объекта PictureBox на форме. Так как показано на рисунке ниже.

Выделите PictureBox и найдите в Параметрах, параметр»BackgroundImage». Нажмите на кнопку «…», будет открыто окно русурсов (Select Resource). Нажмите кнопку Import.. для загрузки картинки с фоном для нашего меню (мы подготовили её в статье Создаём контент для игры «The Dark Castle»: пошаговое руководство ). Итак, загрузите картинку и нажмите Ok.

Загрузка ресурса

Теперь нажмите на маленькую стрелку над нашим PictureBox и задайте параметр Size Mode в «AutoSize», также нажмите «Dock in Parent Container». Выполните этот шаг, как показано на рисунках ниже.

Настройка фонового изображения

Тепперь измените параметр формы. Для этого кликните по заголовку формы в конструкторе форм, затем в параметрах найдите параметр «Size». Установите параметр в 640;480.

Кнопки главного меню

Давайте добавим кнопки. В боковом меню Toolbox(Инструменты), выбарите объект Button(кнопка). Затем кликните в любом месте формы, чтобы кнопка появилась. Необходимо создать три кнопки: «Fight with monster»(сражаться с монстром), «About»(о программе) and «Exit»(выход). Используетй параметр «Text» для изменения текста на кнопке.

Добавляем три кнопки

Пишем код для кнопки Выход (Exit)

Двойным щелчком по кнопке Exit(Выход) откройте окно редактирования кода. В редакторе кода напишите простую команду Close(); так, как показано ниже.

private void button3_Click(object sender, EventArgs e)
{
   Close();
}

Теперь проведем первый тест нашей игры. Нажмите кнопку Start в панели инструментов Visual Studio (находится прямо над окном дизайнера форм и редактора кода).

Будет выполнена сборка приложения и наша игра запустится. Вы увидите главное меню, неплохо смотрится, правда? Теперь окно можно перемещать, кнопки нажимать. Павда пока что ничего не происходит. Теперь нажимте на кнопку Exit, наше приложение будет заркыто. Это ожидаемое поведение, мы так всё и запрограммировали.

First start of application The Dark Castle

Добавление формы «О программе» (About)

Давайте добавим форму «О программе». В Проводнике решений щелкните правой кнопкой мыши по решению TheDarkCastle, затем выберите Добавить(Add) -> Форму (Windows Forms)..

Добавляем новую форму в проект

В диалоговом окне создания новой формы задайте имя формы AboutForm.cs. Затем нажмите Добавить (Add).

Диалог создания новой формы

Теперь добавим LinkLabel на форму (просто перетаскиваем LinkLabel из панели инструментов на форму).

Перетаскиваем LinkLabel из панели инструментов на форму

Дважды щелкните по linkLabel1, откроется редактор кода. Скорректируйте код как показано ниже (ссылка может быть любой, для примера использовали ссылку на сайт Компьюпико.ком).

private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
   linkLabel1.LinkVisited = true;

System.Diagnostics.Process.Start("http://www.compupico.com");

}

Теперь в списке Solution Explorer найдите Form1.cs и щелкните по нему дважды. Откроется дизайнер формы Form1. После этого дважды кликните по кнопке About. Откроется редактор кода. Скорректируйте код как показано ниже.

private void button2_Click(object sender, EventArgs e)
{
   AboutForm myAboutForm = new AboutForm();
   myAboutForm.Show();
}

Теперь запустите наше приложение на выполнение (щелкните зелёную кнопку Play на панели инструментов). После сборки и запуска приложения нажмите на кнопку About. Приложение должно вести себя так, как показано ниже.

Форма About и объект LinkLabel

Если нажать по надписи «Created by Compupico», то система(а точнее программный код System.Diagnostics.Process.Start) должна вызывать стандартный механизм и открыть страницу compupico.com.

Добавьте в проект формы «Win» и»Lose»

Так же добавьте форму «FightWithMonster»

Добавьте новую форму как показано в предыдущиз главах. Задайте имя FightWithMonster.cs

По аналогии с тем как мы добавляли PictureBox в Главное меню, теперь создайте и настрйте PictureBox с картинкой поля боя. Установите размер формы 640 на 480.

Добавьте еще три PictureBox и настройте картинки так, чтобы они соответствовали иззображению Принца и Монстра (так, как показано ниже). Добавьте три кнопки, которые будут отвечать за оружие, и установите для них соответствующие картинки Меча, Молота, Топора.

Настраиваем ProgressBar

Выделите объект progressbar1 и установите параметр Value = 100. Сделайте то же самое с progressbar2.

Добавьте Таймер (Timer)

Добавьте объект Timer на форму (как показано ниже), установите параметры Enabled = true, Interval = 1000.

Дважды кликните по объекту timer1, откроется редактор кода. Скорректируйте код как показано ниже.

private void timer1_Tick(object sender, EventArgs e)
{
   if(progressBar1.Value > 20)
   { 
      progressBar1.Value -= 20;
   }else
   {
      Lose myLose = new Lose();
      myLose.Show();
      this.Close();
    }
    
    pictureBox4.Width += 20;
    pictureBox4.Height += 20;
}

В этом коде мы уменьшаем значение progressBar1 и имитируем потерю здоровья Принцем. Если значение progressBar1 упадет ниже нуля, мы закроем форму FightWithMonster и откроем форму Lose. Также мы меняем размер картинки Монстра (он пугающе растёт).

Для корректной работы разместите progressBar1 на картинкой Пинца, а изображение Монстра (pictureBox4) размещено на форме так, чтобы оно корректно отображалось во время «роста»(увеличения) картинки. Как показано ниже.

Правильное положение объектов на форме

Оружие

Теперь запрограммируем оружие. Откройте форму «FightWithMonster» , щелкните два раза по кнопке Меча — откроется редактор кода. Напишите код, как показано ниже:

private void button1_Click(object sender, EventArgs e)
{
    if (progressBar2.Value > 5)
    {
       progressBar2.Value -= 5;
    }
    else
    {
       Win myWin = new Win();
       myWin.Show();
       this.Close();
    }
}

В этом коде мы уменьшаем значение progressBar2 и имитируем ухудшение здоровья Монстра. Если значение progressBar2 станет меньше нуля, мы закроем форму FightWithMonster и откроем форму Win.

Сделайте то же самое для двух других кнопок оружия — «Молот» и «Топор». Для каждого оружия можно использовать разную силу удара. Просто измените значение в строке progressBar2.Value -= 5;. Например, можно использовать 5 для «Меча», 10 для «Молота» и 15 для «Топора».

Готово!

Вот и всё, игра готова! Вы можете увидеть результат на видео ниже или скачать исходный код проекта здесь для собственных эскпериментов.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *