Двумерная графика. Проектирование игр

Начала анимации. Движение шара на бильярдном столе

 Постановка задачи. Требуется запрограммировать движение шара или шаров на бильярдном столе без учета трения, но с учетом упругого отражения от стенок бильярда. Границы стола — прямоугольник, без луз. Начнем проектирование приложения с определения объектов и классов. Объектами являются бильярдный стол (пусть это будет форма) и шар(ы), для описания которых объявим класс Sharik, эти объекты взаимодействуют …

Начала анимации. Движение шара на бильярдном столеЧитать полностью »

Кривая Безье и метод де Кастельжо

Впервые кривые были представлены в 1962 году французским инженером Пьером Безье (Рено), который, разработав независимо от де Кастельжо (Ситроен), использовал их для компьютерного проектирования автомобильных кузовов. Кривые были названы именем Безье, а именем де Кастельжо назван разработанный им рекурсивный способ определения кривых. Впоследствии это открытие стало одним из полезных инструментов компьютерной графики. Четыре опорные точки P0 …

Кривая Безье и метод де КастельжоЧитать полностью »

Игра «Вторжение НЛО»

Итак, вы уже готовы (идейно и технически) к созданию игры с использованием 2D-графики и идей объектно-ориентированного программирования в среде Visual Studio C#. Начнем с создания достаточно простого шутера «Вторжение НЛО» («UFO Invasion»),  в котором придется отражать нашествие на Землю армады НЛО. Дальнейшее ее развитие вы сможете выполнить самостоятельно. Проектирование шутера начинается с разработки сценария, после …

Игра «Вторжение НЛО»Читать полностью »

Луна за забором

Типичная задача анимации, когда движущийся объект (например, Луна) становится невидимым за неподвижными объектами (горами, домами, забором). Используем наш опыт зашиты областей холста (пример с парапланами) с анимацией. Установку забора свяжем с одним событием — кликом на форме, а анимацию — с другим событием — нажатием кнопки «Ночь».

Анимация-шутка «Заход Луны»

Иногда бывает полезна психологическая разгрузка. Добавим в класс Form1 метод, который будет вызываться при возникновении некоторого события, например, клика на форме. Тогда в течении некоторого времени в окне формы можно будет наблюдать заход Луны. Первая реакция пользователя — компьютерный вирус. Однако все последствия от его действия — перекраска фона формы (добавка двух операторов позволит избежать …

Анимация-шутка «Заход Луны»Читать полностью »

Двумерная графика. Проектирование игр

Двумерная графика на C#, классы Graphics, Pen и Brush Пример рисования в C#. «Кораблик» Рисование контура и закраска области, ограниченной ломаной прямой Рисование сплайнами и кривыми Безье Кривая Безье и метод де Кастельжо Рисование и защита произвольных областей на холсте Начала анимации. Движение шара на бильярдном столе Спрайтовая анимация Анимация-шутка «Заход Луны» Луна за забором …

Двумерная графика. Проектирование игрЧитать полностью »

Спрайтовая анимация

Цель примера — показать способ рисования спрайтов в динамике. Спрайт (англ. Sprite — фея; эльф) — графический объект в компьютерной графике, чаще всего — растровое изображение, которое можно отобразить на экране. Предварительные действия. Создадим в Paint три изображения на белом фоне, каждый размером 100х100 пикселей. Нарисуем (без рамок) в первом квадрате красный круг, во втором …

Спрайтовая анимацияЧитать полностью »

Рисование и защита произвольных областей на холсте

Постановка задачи. Часто бывает необходимо изображение разделить на две составляющие: предметы (движущиеся) и фон (неподвижный), или наоборот, неподвижный забор с дырками в нем и некоторые предметы, двигающиеся за ним. Форма дырок в заборе может быть произвольная, как и форма движущихся предметов. В предыдущем примере была продемонстрирована возможность задания произвольных контуров предметов, теперь мы перейдем к …

Рисование и защита произвольных областей на холстеЧитать полностью »

Рисование сплайнами и кривыми Безье

Постановка задачи. Требуется рисовать объекты 2d-графики, используя плавные кривые. Обсуждение. В примере с корабликом мы уже рисовали окружности и сектора, хотя очевидно они не исчерпывают все необходимые нам графические объекты. В этом примере мы продемонстрируем другие варианты решения этой задачи. Ключевыми понятиями будут сплайн и кривая Безье.

Рисование контура и закраска области, ограниченной ломаной прямой

В предыдущем примере («Кораблик») мы использовали простые и очевидные методы рисования графических объектов класса Graphics, такие как  FillRectangle() — закрасить прямоугольник, FillPie() — закрасить сектор и DrawEllipse() — нарисовать эллипс. Чуть более сложный метод  FillPolygon() — закрашенный полигон. Постановка задачи: «Требуется нарисовать в небе несколько парапланов, имеющих разные цвета и размеры».

Пролистать наверх