В предыдущих статьях Как стать разработчиком игр и Создаём контент для игры «The Dark Castle»: пошаговое руководство мы занимались теорией и контентом. Настало время практики. В этом уроке мы будем писать код в Visual Studio. Писать будем на C# с использованием технологии .Net Framework. Для начала скайте и установите Visual Studio Community Edition. Затем запустите Visual Studio и создайте новый проект со следующими параметрами:
![]() | ![]() |
- Нажмите Create a new project (создать новый проект)
- Выберите тип проекта «Windows Forms App (.Net Framework)
- Нажмите Next (далее)
- Назовитье проект в поле Project Name (например, TheDarkCastle как на скриншоте ниже).
- Нажмите Create (создать)

Будет создан новый проект. Вы увидите главное коно Visual Studio с только что созданным проектом. Галвное окно Visual Studio состоит из следующих частей:
- Конструктор форм (Form1 [Design] визуализация того, как будет выглядить ваша форма)
- Solution Explorer (дерево проекта)
- Properties (Настройки)
- Output window (Строка сообщений)
- Инструменты (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, наше приложение будет заркыто. Это ожидаемое поведение, мы так всё и запрограммировали.

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

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

Now add LinkLabel object on the AboutForm.

Double click on the linkLabel1 and type code like showing below.
private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
linkLabel1.LinkVisited = true;
System.Diagnostics.Process.Start("http://www.compupico.com");
}
Now make double click in Solution Explorer on the Form1.cs it open Form1 designer and then double click on the About button. Type code as showing below.
private void button2_Click(object sender, EventArgs e)
{
AboutForm myAboutForm = new AboutForm();
myAboutForm.Show();
}
Now Run our application. After you will see main window click About button. You must see something like that.

If you click «Created by Compupico» Label system must open browser and go to compupico.com page.
Add to project «Win» and «Loss» Forms
![]() | ![]() |
Add «Fight with monster» Form
Add new form like showing in a previous chapter. Set name of the form is FightWithMonster.cs

Like I write above in chapter «Game menu Image» create and setup object PictureBox with battle field image. Set Form size in 640, 480.
Add three PictureBox and set the parameter Image with relevant images of Prince and Monster as showing below. Also add three buttons and set Image parameter with relevant images of Sword, Hammer and Axe.

ProgressBar setup
Click on progressbar1 object and set the parameter Value = 100. Make the same with progressbar2 object.

Add Timer
Add Timer object on form, set the parameter Enabled = true, Interval = 1000.

Then click on timer1 object, opens code redactor. Type code as showing below.
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;
}
In this code we decrease progressBar1 value and imitate health deterioration of Prince. If progressBar1 value will be less than zero we will be close FightWithMonster form and open Lose form. Also we change size of Monster Picture.
For correct working make sure that the progressBar1 locate near Prince image and pictureBox4 relevant Monster big image on the form. As showing below.

Weapons
Let’s programming weapons. Open «FightWithMonster» Form, double click on the «Sword» button and type code as showing below.
private void button1_Click(object sender, EventArgs e)
{
if (progressBar2.Value > 5)
{
progressBar2.Value -= 5;
}
else
{
Win myWin = new Win();
myWin.Show();
this.Close();
}
}
In this code we decrease progressBar2 value and imitate health deterioration of Monster. If progressBar2 value will be less than zero we will be close FightWithMonster form and open Win form.
Make the same with two other weapons buttons «Hammer» and «Axe». For every weapon you can use different impact force. Just change value in the string progressBar2.Value -= 5; For example, you can use 5 for «Sword», 10 for «Hammer» and 15 for «Axe».
That’s it
Congratulations, our game is ready! You can see results below and download source code of project here.