Програмування ігор на мові C#

Про матеріал
Комп'ютерні ігри вже давно стали частиною нашого відпочинку. На цьому уроці ми спробуємо самі створити просту гру «Перегони тарганів» на мові програмування С#. Її можуть написати навіть ті учні, які тільки почали вивчати програмування, або хочуть спробувати це зробити. Малюнки, текст програми, саму програму та покрокову інструкцію для виконання ви можете отримати за посиланням https://drive.google.com/open?id=1lI06RIr99ZSN3FofrHdCNy0P_bBvd9Bh Бажаємо вам успіху!
Перегляд файлу

Створення динамічних додатків на C #

На цьому уроці, використовуючи вже відомий об'єкт pictureBox, створимо простеньку гру " Перегони тарганів".  Гра  полягає в тому, що таргани біжать до фінішу наввипередки. Виграє той тарган, який  прибіжить до фінішу першим. Для гри потрібні дві картинки жучків, один буде червоний, інший синій. Картинки можна намалювати в редакторі Paint, або завантажити до себе картинки, які знаходяться у папці з проектом http://hi-intel.ru/802/img/90.bmp   http://hi-intel.ru/802/img/91.bmp

Почнемо. Входимо в середовище програмування Microsoft Visual Studio 2010. Створюємо проект через пункт меню "File" "New Project"

Visual C# для чайников. Урок 1. Напишем простейшую программу на C#

Якщо ваша Visual Studio не настроєна за умовчанням на C #, то вам доведеться увійти в гілку Other Languages, потім в Visaul C #, а потім вибрати Windows :

Visual C# для чайников. Урок 1. Напишем простейшую программу на C#

Тепер нам треба вибрати тип створюваного додатка (Windows form application) :

Visual C# для чайников. Урок 1. Напишем простейшую программу на C#

Ми бачимо палітру компонентів:

Visual C# для чайников. Урок 1. Напишем простейшую программу на C#

Створивши новий проект, слід розташувати на формі наступні об'єкти:

http://hi-intel.ru/802/img/92.jpg

В об'єкти 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 значення "СКИДАННЯ".

Запустимо додаток на виконання; форма повинна прийняти вигляд, показаний на малюнку:

http://hi-intel.ru/802/img/93.jpg

Далі, створимо в коді програми кілька глобальних змінних:

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. Встановимо компонент на формі і зробимо деякі настройки.

http://hi-intel.ru/802/img/94.jpg

Властивість GenerateMember і Enabled повинні бути True. Властивість Interval дорівнює 100 - це один тик таймера в секунду. Якщо жучки будуть рухатися повільно, то це значення можна зменшити, наприклад до 50.

Для визначення координати фінішу слід одного з жучків зрушити до кінця вправо.

http://hi-intel.ru/802/img/95.jpg

Перша цифра в властивості 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;
  }
}
Запустимо програму на виконання і, натиснувши кнопку "СТАРТ" зіграємо кілька партій, що б переконатися, що гравці приходять до фінішу зі змінним успіхом.

http://hi-intel.ru/802/img/96.jpg

На закінчення слід сказати, що виконуваний файл (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;

  }

 

        }

    }

}

docx
Додано
30 квітня 2020
Переглядів
1170
Оцінка розробки
Відгуки відсутні
Безкоштовний сертифікат
про публікацію авторської розробки
Щоб отримати, додайте розробку

Додати розробку