Створення динамічних додатків на 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;
}
}
}
}