Улучшение графики
Улучшение графики
На данный момент игра достаточно увлекательна, но графика оставляет желать лучшего. Когда объекты проходят друг через друга, можно увидеть ограничивающие прямоугольники объекта. Надо исправить эту ситуацию.
Для решения проблемы можно использовать прозрачность. Принцип работы с прозрачностью очень прост. Надо выбрать один или несколько цветов, после чего остается указать, что они объявляются прозрачными. В этом случае прозрачные пикселы не участвуют в отображении картинок.
Когда картинка рисуется без прозрачных цветов, она просто копируется в память. Применение прозрачных цветов заставляет машину проверять каждый пиксел для перерисовки, что увеличивает нагрузку на процессор. В полной версии библиотеки .NET Framework разработчик может несколько цветов делать прозрачными. В библиотеке .NET Compact Framework это можно сделать с одним цветом.
Использование прозрачности реализуется при помощи класса ImageAttributes пространства имен System.Drawing. Нужно создать новую переменную transparentWhite, так как белый цвет в изображениях будет считаться прозрачным. Экземпляр класса создается при старте программы, как показано в листинге 11.65.
Листинг 11.65
/// <summary>
/// Маска для белого цвета, который будет считаться прозрачным
/// </summary>
private System.Drawing.Imaging.ImageAttributes transparentWhite;
// Задаем белую маску.
transparentWhite = new System.Drawing.Imaging.ImageAttributes();
transparentWhite.SetColorKey(Color.White, Color.White);
Напомню, что в .NET Framework метод SetColorKey принимает ряд цветов, а в .NET Compact Framework один и тот же цвет дается дважды. Этот цвет будет прозрачным для всех картинок, отображаемых с помощью класса ImageAttribute. Если в игре понадобятся белые цвета, то они не должны быть совершенно белыми.
Объекты игры были созданы так, чтобы их фон был абсолютно белым. Значения атрибутов, используемых при рисовании кусочка сыра, реализованы так, как показано в листинге 11.66. Для других объектов код будет абсолютно таким же.
Листинг 11.66
// Выводим на экран кусочек сыра
g.DrawImage(
cheeseImage, // Image
cheeseRectangle, // Dest.rect
0, // srcX
0, // srcY
cheeseRectangle.Width, // srcWidth
cheeseRectangle.Height, // srcHeight
GraphicsUnit.Pixel, // srcUnit
transparentWhite); // ImageAttributes
В ранней версии игры вызывалась другая версия метода DrawImage. Теперь же задается прямоугольник и указывается прозрачный цвет. Чтобы прозрачность работала должным образом, сыр должен рисоваться на экране после отображения батона.
Итак, мы рисуем прозрачные области для батона, куска сыра и ветчины. Мы обошли вниманием помидоры, которые пока не перекрываются. Этот недостаток будет исправлен чуть позже. В качестве украшения надо добавить фоновую картинку в виде красочной скатерти (рис. 11.8).
Рис. 11.8. Фон для игры
Картинка должна иметь размер клиентской части экрана с белым пространством в верхней части для ведения счета.
Добавить фон не так уж и трудно. Вместо заливки экрана белым цветом в каждом кадре надо просто отрисовать этот узор. Следует объявить новую переменную backgroundImage для картинки-фона, загрузить изображение из ресурсов и изменить код в методе Form1_Paint, как показано в листинге 11.67.
Листинг 11.67
/// <summary>
/// Изображение, содержащее фон игры.
/// </summary>
private Image backgroundImage = null;
// Получим изображение фона игры
backgroundImage = new System.Drawing.Bitmap(
execAssem.GetManifestResourceStream(@"Bouncer.tablecloth.gif"));
g.DrawImage(backgroundImage, 0, 0);
Код загружает картинку как ресурс. Программа теперь может использовать прозрачность для отображения томатов.
Программа неплохо работает в эмуляторе, но не очень хорошо на настоящем КПК, так как процесс рисования все еще имеет некоторые недочеты. Для их устранения следует применять спрайты.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Улучшение посещаемости сайта за счет обработки ошибок
Улучшение посещаемости сайта за счет обработки ошибок Существуют очень простые, но почему-то не всегда используемые методы увеличения числа посетителей сайта за счет тех, кто стремится попасть к вам по устаревшей ссылке. Ясно, что любой сайт подвергается постоянной
Что вам даст улучшение конверсии сайта
Что вам даст улучшение конверсии сайта Наша книга – это, по сути, практическое руководство, которое поможет вам разобраться в методах повышения конверсии и успешно применять их. Хотя мы старались целиком охватить тему убеждения покупателей, но главной нашей целью
Enhancing (Улучшение)
Enhancing (Улучшение) Повышает насыщенность красного, оранжевого и коричневого цветов. При изменении каждого из этих цветов другие цвета изменяются минимально. Фильтр удобно применять для фотографий с изображением осенних пейзажей, архитектурных элементов соответствующих
Image Enhancement (Улучшение изображения)
Image Enhancement (Улучшение изображения) Данная группа фильтров является дополнением к категории Color Effects (Эффекты цвета). Сюда входят фильтры, предназначенные для улучшения качества изображения (рис. 10.12). Используются они чаще всего по отношению к цифровым фотографиям для
Диаграммы и графики
Диаграммы и графики Разглядеть смысл, скрывающийся за бесконечными рядами чисел, может только специалист, а вот понять (или по крайней мере заявить, что понимает) гистограмму или круговую диаграмму может каждый. В VBA нет встроенных средств для создания диаграмм, но такие
Улучшение селективности индекса
Улучшение селективности индекса Вообще говоря, селективность (избирательность) индекса - это оценочное количество строк, которые могут быть выбраны при поиске по каждому значению индекса. Уникальный индекс имеет максимально возможную селективность, потому что он не
33 Пошаговое улучшение качества
33 Пошаговое улучшение качества «Тотальное управление качеством» (Total Quality Management), «Непрерывное улучшение рабочего процесса» (Continuous Process Improvement) или ISO — в большинстве современных терминов, касающихся качества процесса и продукта, акцент ставится на стремлении к качеству в
Улучшение характеристик работы SAP
Улучшение характеристик работы SAP Крайне важно определить корректные меры для оценки эффективности компании, ее способности в достижении намеченных целей. Система SAP в значительной степени способствует мониторингу и управлению мерами по улучшению эффективности (Measures of
Форматы графики
Форматы графики В этом разделе речь пойдет о самых распространенных на сегодняшний день форматах сохранения графики в файлах. Как правило, все эти форматы поддерживаются Flash, за исключением некоторых, особо оговоренных нами. Дополнительные, менее распространенные
Правка графики
Правка графики Итак, создавать графику мы научились. Теперь давайте выясним, как ее править.Под правкой графики мы будем понимать изменение ее формы, а также ее полное или частичное удаление. Как добавить новые линии или фигуры, мы уже прекрасно знаем — достаточно
Выделение графики
Выделение графики Для выделения фрагментов графики служит очень мощный инструмент Selection Tool (Стрелка1). Чтобы его выбрать, нужно щелкнуть по кнопке в главном инструментарии: Или нажать клавишу <V> на клавиатуре. Курсор мыши после этого примет вид небольшой черной
Правка графики
Правка графики Ну что ж, пора приниматься за правку нарисованного. Как говорили древние греки — чаще поворачивай стиль. Проверим, выбран ли у нас инструмент "стрелка", так как подавляющее большинство операций по правке графики выполняются именно с его помощью. Если же для