VC#2010. Практикум. Игра «Поиск предметов»

ivt
0

В окне выводится изображение комнаты, задача пользователя – найти все предметы, которые могут пригодиться в путешествии: ноутбук, фотоаппарат, ручка, блокнот, компас. Внизу окна справа выводится кнопка «Далее».


Разработка интерфейса игры «Поиск предметов»

В первой версии программы мы только разместим все элементы на форме, в следующем задании мы напишем код для того чтобы при нажатии на предметах они исчезали с экрана. Кнопка «Далее» при запуске программы будет недоступной, пользователь сможет ее нажать только после того, как будут найдены все предметы.

Изучение теоретических основ

Перед созданием программы изучите следующие темы по программированию:

Конструирование графического интерфейса, написание программного года.

Переименование файла формы.

Компоненты Form, Button, PictureBox.

Изменение свойств компонентов.

Задание 1. Создание окна для игры «Поиск предметов»

1. В среде Visual Studio 2010 создайте новый проект Windows Forms Application, проект сохраните в папке /projects/, в качестве имени проекта введите FindThings, проследите, чтобы был включен флажок «Создавать папку для сборки» (Create directory for solution).

2. Переименуйте имя файла с формой из Form1.cs в FindForm.cs, при этом форма тоже должна переименоваться в FindForm.

3. Задайте свойства формы:

Text                                  Экспедиция

BackgroundImage         загрузите файл bkgrOffice.jpg из папки с фоновыми изображениями

FormBorderStyle         FixedSingle

Size                                 724; 504

MaximizeBox                False

StartPosition                CenterScreen

4. Разместите на форме компонент PictureBox, установите для него следующие свойства:

BackgroundImage       загрузите файл picAlarmclock48.png из папки с изображениями

BackColor                     Transparent

Size                                48; 48

Location                        586; 91

5. Аналогичным способом разместите на форме изображения других предметов, установите для них соответствующий размер.

6. Разместите на форме кнопку Button, установите для нее следующие свойства:

Name                           btnNext

Text                              Далее

Location                      560; 410

Size                              114; 39

7. Нажмите дважды на кнопке «Далее» и напишите обработчик события OnClick:

Close();

Тем самым мы написали команду закрытия окна. После объединения всех уровней в одну общую программу Вы измените этот обработчик так, чтобы осуществлялся переход к следующему окну.

8. Сохраните проект.

9. Запустите программу на выполнение и проверьте ее работу.

 

Исходный код готового проекта

 

using System;

using System.Windows.Forms;

 

namespace FindThings

{

  public partial class FindForm : Form

  {

    public FindForm()

    {

      InitializeComponent();

    }

 

    private void btnNext_Click(object sender, EventArgs e)

    {

      Close();

    }

  }

}

 

Выбор предметов в игре

Изменим программу так, чтобы при нажатии мышкой по предмету он исчезал с экрана.

Изучение теоретических основ

Перед созданием программы изучите следующие темы по программированию:

Свойство Visible компонента PictureBox.

Событие OnClick компонента PictureBox.

Объект sender в обработчике события.

Назначение разным объектам одного и того обработчика события.

 

Задание 2. Добавление кода для выбора предметов

1. Откройте проект, созданный при выполнении предыдущего задания.

2. Откройте форму.

3. В окне свойств выберите из списка объект pictureBox1.

4. Дважды щелкните по объекту pictureBox1.

5. В окне редактора кода введите код для обработки события OnClick компонента PictureBox:

pictureBox1.Visible = false;

6. Для второго объекта pictureBox2 напишем такой же обработчик события OnClick, но с использованием объекта sender:

((PictureBox)sender).Visible = false;

7. Запустите программу и убедитесь, что обработчики для обоих объектов работают одинаково.

8. Назначьте процедуру pictureBox2_Click всем остальным объектам PictureBox в качестве обработчика события OnClick. Для этого выделите на форме объект pictureBox3, в окне свойств переключитесь на вкладку Events. Найдите событие Click и в правом столбце из списка выберите pictureBox2_Click. Выполните аналогичные действия для остальных объектов PictureBox.

9. Запустите программу на выполнение и проверьте ее работу.

 

Исходный код готового проекта

 

using System;

using System.Windows.Forms;

 

namespace FindThings

{

  public partial class FindForm : Form

  {

    public FindForm()

    {

      InitializeComponent();

    }

 

    private void btnNext_Click(object sender, EventArgs e)

    {

      Close();

    }

 

    private void pictureBox1_Click(object sender, EventArgs e)

    {

      pictureBox1.Visible = false;

    }

 

    private void pictureBox2_Click(object sender, EventArgs e)

    {

      ((PictureBox)sender).Visible = false;

    }

  }

}

 

Совет: Вы можете процедуру pictureBox2_Click назначить объекту pictureBox1 и тогда процедуру pictureBox1_Click можно удалить из кода.

 

 

Проверка нахождения всех предметов

Теперь изменим программу так, чтобы при появлении окна кнопка «Далее» была выключена, а включалась только после того, как будут найдены все предметы.

Изучение теоретических основ

Перед созданием программы изучите следующие темы по программированию:

Свойство Enabled компонента Button.

Условный оператор if – else.

 

Задание 3. Добавление в игру проверки нахождения предметов

1. Откройте проект, созданный при выполнении предыдущего задания.

2. Откройте форму.

3. Выберите на форме объект btnNext, установите значение свойства:

Enabled             False

4. В процедуры pictureBox1_Click и pictureBox2_Click добавьте следующий код:

      if (!pictureBox1.Visible && !pictureBox2.Visible

          && !pictureBox3.Visible && !pictureBox4.Visible

          && !pictureBox5.Visible && !pictureBox6.Visible

          && !pictureBox7.Visible)

      {

        btnNext.Enabled = true;

      }

5. Сохраните проект.

6. Запустите программу на выполнение и проверьте ее работу.

 

Исходный код готового проекта

 

using System;

using System.Windows.Forms;

 

namespace FindThings

{

  public partial class FindForm : Form

  {

    public FindForm()

    {

      InitializeComponent();

    }

 

    private void btnNext_Click(object sender, EventArgs e)

    {

      Close();

    }

 

    private void pictureBox1_Click(object sender, EventArgs e)

    {

      pictureBox1.Visible = false;

      if (!pictureBox1.Visible && !pictureBox2.Visible

          && !pictureBox3.Visible && !pictureBox4.Visible

          && !pictureBox5.Visible && !pictureBox6.Visible

          && !pictureBox7.Visible)

      {

        btnNext.Enabled = true;

      }

    }

 

    private void pictureBox2_Click(object sender, EventArgs e)

    {

      ((PictureBox)sender).Visible = false;

      if (!pictureBox1.Visible && !pictureBox2.Visible

          && !pictureBox3.Visible && !pictureBox4.Visible

          && !pictureBox5.Visible && !pictureBox6.Visible

          && !pictureBox7.Visible)

      {

        btnNext.Enabled = true;

      }

    }

  }

}

 

 

Упражнения

1. В верхнем левом углу окна добавьте метку для вывода сообщения с количеством предметов, которые осталось найти, добавьте код в обработчики события OnClick изображений с предметами.

2. Придумайте другие варианты игры с поиском предметов, например:

- в комнате найти загранпаспорт;

- в каюте капитана найти компас;

- во время высадки команды Кука на остров Таити возле берега матросы уронили сундук, вещи оказались раскиданы по дну моря, задача игрока – собрать все вещи;

- на экране – несколько кораблей, нужно выбрать корабль, на котором Кук совершил свое второе путешествие.

Подберите подходящие изображения и разработайте Ваш вариант игры.



Tags

Дописати коментар

0Коментарі
* Please Don't Spam Here. All the Comments are Reviewed by Admin.
Дописати коментар (0)

#buttons=(Accept !) #days=(20)

Our website uses cookies to enhance your experience. Learn More
Accept !