Создание динамических приложений на C#
На этом уроке, используя уже известный объект pictureBox, создадим простенькую игру "Тараканьи бега". Суть игры состоит в том, чей жучёк прибежит к финишу первым. Для игры нужны две картинки жучков, один будет красный, другой синий. Картинки можно нарисовать в редакторе Paint, или загрузить к себе в папку с проектом представленные здесь картинки:
Создав новый проект, следует расположить на форме следующие объекты:
В объекты 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.
|
|