ПРОГРАМИРУЕМ 3D ГРАФИКУ

       

Програмируем 3D графику используя DirectX

Если вы умеете программировать на С, но еще не перешли на C++ — вот вам отличный повод сделать это! Мой собственный опыт работы с C++ не так уж велик, и примеры будут понятны любому программисту на С, которому в течение нескольких недель пришлось иметь дело с C++. Если же вы не программируете на С, то советую вам вообще пропустить знакомство с ним и сразу начать с C++.
Я разрабатывал свои приложения и классы C++ с чисто практической точки зрения. Другими словами, я попытался создать средства для решения конкретных задач, а не ряд бесконечных примеров для демонстрации тех или иных возможностей. Вы не найдете в моих примерах классов типа CDog, CLabrador или CAardvark. Это вовсе не означает, что мы пропустим большинство возможностей механизма визуализации — мы используем их в той степени, в какой они нужны нам для создания приложений.

Наше первое трехмерное
Свет и тень

Графика для Windows библиотека программиста средствами DirectDraw

Программисты (особенно начинающие) любят задавать вопросы типа: «Скажи, на чем ты пишешь…?» Когда-то этот вопрос выглядел вполне логично. Компиляторы, отладчики, серверы, системы управления базами данных и все остальное только-только выходило из каменного века. Программные инструменты разительно отличались друг от друга по качеству и возможностям. Стоило сделать ставку на неудачный инструментарий, и работа становилась излишне тяжкой, а качество результата — низким.
Сегодня стал актуальным другой вопрос: «А чего стоишь ты сам?» Благодаря непрерывной конкуренции современные средства разработчика стали невероятно мощными и качественными, так что среднему программисту вряд ли удастся выжать из них все возможное. Скорее всего, вы спасуете намного раньше, чем ваш инструментарий — если только не узнаете о нем абсолютно все и не доведете свое мастерство программиста до подлинного совершенства.
Книги этой серии предназначены для углубленного изучения программных инструментов. В них рассматриваются нетривиальные возможности, которые невозможно описать в простейшем учебнике. Полноценные проекты заставляют читателя мыслить на уровне эксперта — напрягать серое вещество, лежащее в основе всего, что мы называем «мастерством».
Конечно, это не единственный путь — например, можно добросовестно набивать шишки обо все острые углы новых технологий и наобум пробовать все подряд, пока что-нибудь не заработает. А можно воспользоваться опытом наших авторов, которые уже прошли стадию обучения и попутно сделали кое-какие заметки на память. Мы тщательно отобрали темы, авторов и методику изложения, чтобы читатель не путался в ненужных вступлениях или редких технологиях, которые ему все равно не понадобятся.
Наша главная цель — поднять ваше мастерство настолько, насколько вы сами захотите. Классные инструменты у вас уже есть, осталось лишь стать классным программистом.

Краткий курс DirectDraw
Полностью рассмотреть в одной главе всю библиотеку DirectDraw было бы нереально. В конце концов, даже о простейших аспектах DirectDraw написаны целые книги. DirectDraw представляет собой мощный и гибкий API, с помощью которого можно создать практически любое графическое приложение Windows. Именно гибкость существенно усложняет любые описания. Следовательно, было бы глупо пытаться рассмотреть все, от начала до конца, в одной главе.

DirectInput
DirectInput представляет собой DirectX API для работы с устройствами ввода — клавиатурой, мышью, джойстиками, рулями, авиационными рукоятками, шлемами виртуальной реальности и даже устройствами с обратной связью. В полном соответствии с идеологией DirectX библиотека DirectInput проектировалась в первую очередь для реализации высокого быстродействия и аппаратной независимости. Основная задача DirectInput - как можно быстрее обнаружить пользовательский ввод и доставить его приложению. Исключение составляют устройства с обратной связью; для них в DirectInput предусмотрены функции как ввода, так и вывода.

Работа с пакетом D3DFrame

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

Программирование шаблона
Отображение блоков на панели инструментов

Игры для взрослых вечеринок. Справочное пособие

Ведyщий (он, кстати на всякий слyчай, должен быстpо бегать) обьявляет конкypс на самyю ловкyю девyшкy. Для этого он выбиpает 3-4 девyшек в юбках. Hа пол кладется ковpик длиной 1-2 метpа. Девyшкам завязываются глаза и объясняется задание, что они должны пpойти над ковpиком, pасставив как можно шиpе ноги и пpи зтом не настyпить на него. Девyшки пpоделывают это не хитpое задание. После чего ведущий ложится на ковpик лицом ввеpх и ждет когда с девyшек снимyт повязки. После этого он медленно встает и каpтинно объявляет победительницей тy, котоpая больше всего покpаснела, пpинимает низкий стаpт и готовиться yдиpать как можно быстpее от pазъяpенных yчастниц конкypса (если таковые объявятся).

А, ну-ка вставь-ка
Собери Колоду