Програмування ігор на мові C#
Про матеріал
Комп'ютерні ігри вже давно стали частиною нашого відпочинку. На цьому уроці ми спробуємо самі створити просту гру «Перегони тарганів» на мові програмування С#. Її можуть написати навіть ті учні, які тільки почали вивчати програмування, або хочуть спробувати це зробити. Малюнки, текст програми, саму програму та покрокову інструкцію для виконання ви можете отримати за посиланням https://drive.google.com/open?id=1lI06RIr99ZSN3FofrHdCNy0P_bBvd9Bh Бажаємо вам успіху!Створення динамічних додатків на C #
На цьому уроці, використовуючи вже відомий об'єкт pictureBox, створимо простеньку гру " Перегони тарганів". Гра полягає в тому, що таргани біжать до фінішу наввипередки. Виграє той тарган, який прибіжить до фінішу першим. Для гри потрібні дві картинки жучків, один буде червоний, інший синій. Картинки можна намалювати в редакторі Paint, або завантажити до себе картинки, які знаходяться у папці з проектом
Почнемо. Входимо в середовище програмування Microsoft Visual Studio 2010. Створюємо проект через пункт меню "File" "New Project"
Якщо ваша Visual Studio не настроєна за умовчанням на C #, то вам доведеться увійти в гілку Other Languages, потім в Visaul C #, а потім вибрати Windows :
Тепер нам треба вибрати тип створюваного додатка (Windows form application) :
Ми бачимо палітру компонентів:
Створивши новий проект, слід розташувати на формі наступні об'єкти:
В об'єкти pictureBox1 і pictureBox2 слід завантажити картинки. Для цього у властивості Image натиснути маленьку кнопку справа і, далі, натиснути кнопку Import на панелі ресурсів.
Коли картинки будуть завантажені, слід панелі panel1 привласнити у властивості BackColor такий же колір, як і фон картинок жучків.
Подвійним клацанням на виділеній формі слід створити подію і прописати в ній початкові установки нашої програми:
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "Вася";
textBox2.Text = "Петя";
label1.Text = "0";
label2.Text = "0";
pictureBox1.Left = 1;
pictureBox2.Left = 1;
}
Кнопці button1 у властивості Text слід привласнити значення "СТАРТ", а button2 значення "СКИДАННЯ".
Запустимо додаток на виконання; форма повинна прийняти вигляд, показаний на малюнку:
Далі, створимо в коді програми кілька глобальних змінних:
public partial class Form1 : Form
{
int flag1;
int x1, x2;
public Form1()
{
Змінна flag1 - призначена для контролю ігрової ситуації, якщо flag1 дорівнює 0, то жучки стоять на місці, а якщо flag1 не дорівнює 0, то жучки починають рухатися. Змінні x1 і x2 призначені для зберігання горизонтальних координат положення жучків на біговій доріжці.
Створимо подію для кнопки "Скидання", ця подія очищає всі змінні і встановлює жучків в стартову позицію.
private void button2_Click(object sender, EventArgs e)
{
label1.Text = "0";
label2.Text = "0";
x1 = 1; x2 = 1;
pictureBox1.Left = x1;
pictureBox2.Left = x2;
flag1 = 0;
}
Для кнопки "СТАРТ" теж створимо подія, воно буде дуже просте, потрібно привласнити змінної flag1 будь-яке значення не рівне 0.
private void button1_Click(object sender, EventArgs e)
{
flag1 = 1;
}
Тепер залишилося створити подію, яка буде переміщати наших жучків. Для цього нам знадобиться компонент таймер timer1. Встановимо компонент на формі і зробимо деякі настройки.
Властивість GenerateMember і Enabled повинні бути True. Властивість Interval дорівнює 100 - це один тик таймера в секунду. Якщо жучки будуть рухатися повільно, то це значення можна зменшити, наприклад до 50.
Для визначення координати фінішу слід одного з жучків зрушити до кінця вправо.
Перша цифра в властивості Location (на малюнку це 422) означає фінішну координату (у вас це значення може бути іншим, його потрібно запам'ятати для вставки в код програми).
Подвійним клацанням по іконці timer1 створимо подія руху жучків:
private void timer1_Tick(object sender, EventArgs e)
{
if (flag1 != 0) // Якща дан старт :
{
Random a = new Random(); // Включаємо генератор випадкових чисел
// В змінну count записываем випадкове число в діапазоне від 0 до 8
int count = a.Next(8);
// Нарощуємо значення координати x1 на випадкове число count
x1 += count;
// Виводимо значення пройденого шляху для першого гравця
label1.Text = Convert.ToString(x1);
// Зміщуємо першого жучка на випадкову величину
pictureBox1.Left = x1;
// Створюємо випадкове число для другого гравця і повторюємо все те ж саме
count = a.Next(8);
x2 += count;
label2.Text = Convert.ToString(x2);
pictureBox2.Left = x2;
}
// Перевіряємо який з гравців дійшов до фінішу і зупиняємо процес
if ((x1 >= 422) || (x2 >= 422))
{
flag1 = 0;
}
}
Запустимо програму на виконання і, натиснувши кнопку "СТАРТ" зіграємо кілька партій, що б переконатися, що гравці приходять до фінішу зі змінним успіхом.
На закінчення слід сказати, що виконуваний файл (exe) знаходиться в папці з вашим проектом в папці bin \ debug \ імя_проекта.exe. Цей файл можна копіювати на будь-який носій і виконувати незалежно від середовища програмування Visual Studio.
Текст програми «Перегони тарганів»
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication45
{
public partial class Form1 : Form
{
int flag1;
int x1, x2;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = "Вася";
textBox2.Text = "Петя";
label1.Text = "0";
label2.Text = "0";
pictureBox1.Left = 1;
pictureBox2.Left = 1;
}
private void button2_Click(object sender, EventArgs e)
{
label1.Text = "0";
label2.Text = "0";
x1 = 1; x2 = 1;
pictureBox1.Left = x1;
pictureBox2.Left = x2;
flag1 = 0;
}
private void button1_Click(object sender, EventArgs e)
{
flag1 = 1;
}
private void timer1_Tick(object sender, EventArgs e)
{
if (flag1 != 0)
{
Random a = new Random();
int count = a.Next(8);
x1 += count;
label1.Text = Convert.ToString(x1);
pictureBox1.Left = x1;
count = a.Next(8);
x2 += count;
label2.Text = Convert.ToString(x2);
pictureBox2.Left = x2;
}
if ((x1 >= 545) || (x2 >= 545))
{
flag1 = 0;
}
}
}
}



