Как создать игру ? - Программируем сами. Рассмотрение программирования игр под DirectX 9c на C++ с использованием среды разработки MSVS 2005 или выше. |
||
[содержание] [страница 2] [далее] | ||
Самый первый шаг - страница 2 | ||
Итак, Мы рассмотрели код функции wWinMain и это оказалось не так уж сложно даже для тех, кто совсем никогда не создавал не только игр, а и вообще не был знаком с языком C++ и DirectX-ом как таковым. Но вот эти светлые головы решились освоить создание игр и не просто научиться программировать под DirectX 9c на языке C++, но и создать хорошую, интересную, качественную игру, в которую было бы увлекательно играть и не стыдно показать её всем знатокам и любителям компьютерных игр. |
||
Не совсем понятно - скажут многие из Вас - мы всего лишь рассмотрели функцию wWinMain примера CreateDevice из DirectX 9c SDK, но это еще не окончательный ответ на вопрос как создаются DirectX - приложения. | ||
Еще раз взгляните на код функции wWinMain обратите внимание на строку кода wc.lpfnWndProc = MsgProc; |
||
Здесь Мы говорили о передаче указателя на некую оконную процедуру В коде модуля CreateDevice.cpp есть эта функция - посмотрите сами - |
||
Это наш обработчик системных сообщений LRESULT
WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
case WM_PAINT:
return DefWindowProc( hWnd, msg, wParam, lParam ); |
||
Иными словами любое Windows-приложение, в том числе DirectX - приложение, работает по принципу - если от системы не поступает никаких сообщений, предназначенных данному приложению, то оно "отдыхает" - более точно находится в состоянии бездействия Idle. Это позволяет операционной системе усиленно выполнять иные задачи, если таковые имеются. Но как только поступает сообщение предназначенное вашему приложению - например, пользователь нажал какую-то клавишу или что-то выбрал мышью в окне Вашего приложения - система направляет соответствующее сообщение Вашему приложению. Задачи системы - только сформировать сообщение в правильном формате и передать его Вашей программе, как конкретно будет обработано поступившее сообщение будет зависеть от того, что Вы напишете для этих целей в своей программе. |
||
Функция MsgProc как раз и выполняет эту задачу - В нашем примере обрабатываются два сообщения - WM_DESTROY и WM_PAINT для всех остальных сообщений системы вызывается обработчик по-умолчанию - DefWindowProc( hWnd, msg, wParam, lParam ); |
||
для сообщения - WM_DESTROY выполняются функции Cleanup и PostQuitMessage для WM_PAINT вызывается функция Render, а затем ValidateRect и тот и другой обработчики сообщений выполняют return 0 - т. е. возвращают значение 0 как результат исполнения функции MsgProc в остальных случаях будет возвращаться значение, формируемое обработчиком по-умолчанию - return DefWindowProc( hWnd, msg, wParam, lParam ); |
||
Таким образом, Вы видите, что Вам нужно рассмотреть еще код следующих функций - InitD3D - потому что её вызов также присутствует в коде функции wWinMain, а также Cleanup и Render. Остальные функции ValidateRect, PostQuitMessage являются системными и их назначение Вы можете узнать из справочной системы MSVS - MSDN - Microsoft Developer Network. Справочная система как правило идет в составе пакета MSVS в виде отдельного диска. Если его у Вас нет - срочно его раздобудьте - найдите и скачайте где-нибудь в интернете, в противном случае - без Справочной системы Вы дальше нормально работать не сможете !!! |
||
Функция InitD3D HRESULT
InitD3D( HWND hWnd )
// формируем структуру для передачи в метод CreateDevice //обнуляем
все поля переменной d3dpp //задаем
оконный режим приложения //отключаем
эффект обмена буферов заднего плана //формат
буфера заднего плана пока неизвестен, т. к. будет зависеть от установленного
//текущего разрешения экрана //создаем устройство Direct3D, здесь мы используем дисплейный адаптер по-умолчанию, //т. к. в большинстве систем имеется только один адаптер, задаем аппаратный уровень //абстракции, передаем обработчик окна hWnd, задаем программную обработку вершин //передаем указатели на переменную d3dpp и g_pd3dDevice //в
последнюю в случае успеха будет помещен указатель на интерфейс IDirect3DDevice9 //если создание прошло успешно - возвращаем код возврата S_OK
return S_OK; |
||
Функции Cleanup и Render - //функция Cleanup предназначена для освобождения объектов D3DDevice и D3D VOID
Cleanup()
if( g_pD3D != NULL ) //функция Render выполняет VOID
Render() //если
указатель на интерфейс IDirect3DDevice9 равен NULL - возврат //очищаем
буфер заднего плана синим цветом //начало
отрисовки объектов сцены //конец
отрисовки сцены //представление
буфера заднего плана на передний план (экран) |
||
Здесь также упущен в целях простоты метод FrameMove - в котором осуществляется анимация объектов игровой сцены. | ||
Чтобы лучше усвоить теорию нужно её проверить на практике - жмём клавишу F7 для того, чтобы откомпилировать приложение CreateDevice. Если компиляция прошла без ошибок - Вам нужно открыть папку |
||
C:\DXSDK_Aug2008\Samples\C++\Direct3D\Tutorials\Tut01_CreateDevice\Debug | ||
и запустить файл CreateDevice.exe дважды щелкнув по его значку. Имейте в виду, и я об этом уже говорил, что указанный путь в Вашей системе может быть ДРУГИМ!!! проверьте куда Вы установили DirectX SDK и начинайте открывать именно эту папку, я же здесь и далее больше не буду останавливать на этом важном моменте, а буду указывать все пути, предполагая, что DirectX SDK по-умолчанию установлен у Вас в папке C:\DXSDK_Aug2008 Вы же должны вместо этого подставлять путь к установленному DX SDK с учетом того, как Вы его установили на своём компьютере !!! |
||
[содержание] [страница 2] [далее] | ||
игры, сервисы
|
||||||||||
видео-рассказ, уроки godot, виртуальный помощник по поиску информации
|
||||||||||
игры Многоликий: dress - hordes эпизоды с 1 по 4
|
||||||||||
игры, музыкальные клипы
|
||||||||||
музыкальный клип, игры
|
||||||||||
разработка игр, анимационный фильм, новогодняя дискотека 2020 - песни на итальянском, игра про лифт
|
||||||||||
игры, инструменты разработки, анимационный фильм, фильм.
|
||||||||||
игры
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере (3), создание музыки в браузере (1)
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере (3), скачиваемые (1)
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере, скачиваемые игры
|
||||||||||
игры в браузере
|
||||||||||
игры в браузере
|
||||||||||
полезный софт, игры в браузере
|
||||||||||
сервисы, игры
|
||||||||||
игры, программы
|
||||||||||
поздравления, уроки рисования, уроки создания сайтов
|
||||||||||
комиксы, музыка, рассказы
|
||||||||||
игра для разработки, калькулятор услуг, cms, комикс
|
||||||||||
игры для разработки, комиксы
|
||||||||||
игры шарики и ямки, комиксы про Костю Коробкина, ria xxl игра, fly snow 3d генератор эффектов снега, частиц и др. -
|
||||||||||
Создай свою игру на fle game engine -
|
||||||||||
Для создания сайта - модуль отзывов/комментариев для вашего сайта в составе megainformatic cms express files -
|
||||||||||
Уроки Flash, бесплатные Flash - игры.
|
||||||||||
Поддержка сайтом нескольких языков (multi lang), создание собственной системы личных кабинетов, соц. сети или фриланс - биржи (megainformatic cms social), создание сервиса коллективных покупок на базе megainformatic cms groupon, онлайн сервис подсчёта статистики ключевых слов в статьях вашего сайта keywords gen + описание кода данного сервиса, с возможностью бесплатно реализовать его аналог на своём собственном сайте.
megainformatic.ru/webjob/ - сервис для фриланс проектов - место встречи заказчиков и исполнителей |
||||||||||
Социальная сеть megainformatic.ru/webjob/
megainformatic.ru/webjob/ - сервис для фриланс проектов - место встречи заказчиков и исполнителей |
||||||||||
Системы управления сайтом, уроки
megainformatic cms admin - простая и компактная система для работы и управления сайтом |
||||||||||
|
||||||||||
|
||||||||||
megainformatic cms free и серия продуктов - Уроки Photoshop
Данная серия посвящена описанию приемов и методов создания изображений, с помощью инструментария программы Adobe Photoshop. Кроме того, многие описанные средства могут вам помочь при освоении и многих других программ для работы с растровой графикой - GIMP, Corel Photo Paint и других.
|
||||||||||
бесплатные игры 2d и 3d, а также эмулятор Ну, Погоди!
Это серия распространяемых бесплатно игр. Вы не только можете поиграть, но и скачать исходники, получив тем самым возможность внести изменения в игру или создать новую !!! (эмулятор Ну, Погоди! распространяется платно). |
||||||||||
серия игр про Веселого Буквоежку, и бесплатно распространяемая игра Нечто: Необъяснимое - в плену желаний
Здесь представлены новинки жанра - Говорящий Комикс, Настольная игра, А также продукт, который позволит Вам научиться создавать игры самостоятельно. Ну и конечно изюминка в своём роде - бесплатная игра - Нечто: Необъяснимое - в плену желаний |
||||||||||
Серия бесплатных онлайн уроков, посвященных 3ds max, photoshop, c++, directx, delphi и php.
Описаны практические примеры решения различных задач, возникающих при создании игр и сайтов. Продукты Набор разработчика и Ваше Визуальное Шоу распространяются платно. |
||||||||||
уроки и продукты различной тематики
Бесплатные Уроки Photoshop free, Бесплатные Уроки по программированию на delphi directx - Как создать игру Ну, Погоди!, Бесплатная Авторская музыка в формате mp3 - Музыкальные Миры, Платно распространяемый продукт megainformatic cms express - система для быстрого создания Вашего сайта на php + my sql. |
||||||||||
Проекты игр, уроки
Игра Веселый Буквоежка, уроки delphi directx 8.1 для начинающих (описываются основы 3d игр), моделируем девушку в 3d studio max, уроки музыки - пишем музыку в Fruity Loops Studio |
||||||||||
|