1
Создание динамических приложений на C#
Оригинал :
http://hi-intel.ru/802/107.html
На этом уроке, используя уже известный объект 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;
}
2
Кнопке 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;
}
3
Для кнопки "СТАРТ" тоже создадим событие, оно будет очень простое, нужно
присвоить переменной 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) // Если дан старт :
4
{
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.
Достарыңызбен бөлісу: |