В окне выводится изображение комнаты, задача пользователя – найти все предметы, которые могут пригодиться в путешествии: ноутбук, фотоаппарат, ручка, блокнот, компас. Внизу окна справа выводится кнопка «Далее».
Разработка интерфейса игры «Поиск предметов»
В первой версии программы мы только разместим все элементы на форме, в следующем задании мы напишем код для того чтобы при нажатии на предметах они исчезали с экрана. Кнопка «Далее» при запуске программы будет недоступной, пользователь сможет ее нажать только после того, как будут найдены все предметы.
Изучение теоретических основ
Перед созданием программы изучите следующие темы по программированию:
* Конструирование графического интерфейса, написание программного года.
* Переименование файла формы.
* Компоненты 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. Придумайте другие варианты игры с поиском предметов, например:
- в комнате найти загранпаспорт;
- в каюте капитана найти компас;
- во время высадки команды Кука на остров Таити возле берега матросы уронили сундук, вещи оказались раскиданы по дну моря, задача игрока – собрать все вещи;
- на экране – несколько кораблей, нужно выбрать корабль, на котором Кук совершил свое второе путешествие.
Подберите подходящие изображения и разработайте Ваш вариант игры.