Автор шаг за шагом раскрывает перед программистом тонкости процесса разработки игры, начиная с создания пустого проекта и заканчивая написанием полноценной игровой модели. Роб Майлз любезно разрешил использовать исходный код игры на страницах книги, а в архиве программ вы найдете установочный файл, содержащий исходные коды игры. Когда вы запустите установочный файл, то программа установки скопирует файлы с примерами в папку C:\Program Files\Windows Mobile Developer Samples\Games Programming With Cheese Part 1
. В этом каталоге будут расположены еще семь папок с проектами, которые шаг за шагом ведут программиста к написанию игры.
Так как сама статья написана на английском языке, то придется приложить некоторые усилия для понимания текста. Но автор так понятно и доходчиво объясняет материал, сопровождая его иллюстрациями и строчками кода, что разобраться в нем сможет даже начинающий программист.
Итак, прежде всего нужно создать новый проект для смартфона под управлением Windows Mobile 5.0 с использованием платформы .NET Compact Framework 2.0. Этот проект должен получить имя Bouncer
.
Добавление изображения в программу
Наше приложение будет использовать графические изображения. Картинки, используемые в игре, хранятся в файле самой программы в виде ресурсов. Сначала надо подготовить сами рисунки для игры. Автор программы решил использовать для игры различные виды продуктов.
Возьмем, к примеру, изображение кусочка сыра. Файл с изображением сыра надо скопировать в папку, в которой хранятся файлы проекта. Затем следует щелкнуть правой кнопкой мыши на названии проекта Bouncer
в окне Solution Explorer
, выбрать пункт контекстного меню Add
, а затем перейти к пункту подменю Add Existing Item
. В диалоговом окне Add Existing Item
надо выбрать файл cheese.gif
. После этого остается нажать кнопку Add
. Картинка теперь добавлена в проект, но еще не является частью программы.
Необходимо указать, что графический файл будет храниться в виде встроенного ресурса. Нужно щелкнуть правой кнопкой мыши на значке графического файла в окне Solution Explorer
и выполнить команду контекстного меню Properties
. В разделе Build Action
по умолчанию используется пункт Content
. Но в данном случае нужно указать пункт Embedded Resource
.
Теперь картинка является частью сборки, и для распространения программы нам понадобится единственный исполняемый файл, в котором будут содержаться все необходимые изображения.
Использование встроенных ресурсов
При работе программы необходимо получить доступ к графическому файлу из ресурсов и вывести изображение на экран. Для этого сначала необходимо получить ссылку на сборку. Соответствующий код приведен в листинге 11.1.
Листинг 11.1
// Получим ссылку на сборку
System.Reflection.Assembly execAssem =
System.Reflection.Assembly.GetExecutingAssembly();
Метод System.Reflection.Assembly.GetExecutingAssembly
возвращает сборку, из которой выполняется текущий код. Получив в программе ссылку на сборку, можно получить доступ к встроенным ресурсам, в том числе к изображению сыра. Метод GetManifestResourceStream
позволяет извлекать указанный ресурс из сборки. Для этого нам надо указать имя файла и название пространства имен. В нашем случае это будет Bouncer.cheese.gif
, как показано в листинге 11.2.
Листинг 11.2
///
/// Изображение сыра
///
private Image cheeseImage = null;
public Form1() {
InitializeComponent();
// Получим ссылку на сборку
System.Reflection.Assembly execAssem =
System.Reflection.Assembly.GetExecutingAssemblу();
// Получим доступ к картинке с сыром
cheeseImage = new System.Drawing.Bitmap(
execAssem.GetManifestResourceStream(@"Bouncer.cheese.gif");
}
При запуске программа загружает из ресурсов картинку. Теперь надо вывести изображение на экран. Для этого нужно воспользоваться событием Paint
, как показано в листинге 11.3.
Листинг 11.3
private void Form1_Paint(object sender, PaintEventArgs e) {
e.Graphics.DrawImage(cheeseImage, 0, 0);
}
После запуска программы в левом углу экрана будет отображен кусочек сыра (рис. 11.2).
Рис. 11.2. Вывод изображения на экран
Читать дальше