fle game engine - движок для создания игр
fle game engine - движок для создания игр


Вакансии
Игродельня
Сегодня
30 мая 2017
1:48
Вход Регистрация Забыли пароль ?

megainformatic - СОЗДАНИЕ МАКЕТА ПОМЕЩЕНИЯ
        СОЗДАНИЕ МАКЕТА ПОМЕЩЕНИЯ      
подробнее...

Теги

создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт

Статьи сайта

megainformatic - Легко ли быть программистом

megainformatic - Глубины программирования на C++

megainformatic - Убираем лимит на размер импортируемого файла в PhpMyAdmin

megainformatic - Как создать torrent файл

megainformatic - Нужна ли валидация вашему сайту ?

megainformatic - Антивирус DrWeb

megainformatic - Калькулятор рассчёта стоимости зубопротезирования для стоматологической клиники

megainformatic - Что такое BitTorrent (БитТоррент)

megainformatic - Миссис Даутфайр 1993 фильм torrent

megainformatic - Как скачивать торрент-раздачу ?

megainformatic - Автотелега фильтр

megainformatic - Фильмы

megainformatic - Fahrengeit Фаренгейт игра 2006 для PC

megainformatic - Fez игра для PC 2013

megainformatic - Дневник памяти - фильм 2004

megainformatic - Scooter - The night - Video and Lyrics - Скутер - Ночь - Видео и лирика

megainformatic - Если всё же неудача

megainformatic - Смерть или искупление или избавление

megainformatic - По ту сторону

cj megainformatic - музыкальный альбом БЕСКОНЕЧНОЕ ДВИЖЕНИЕ ОЖИДАНИЕ И ДЕЙСТВИЕ

megainformatic - Костя Коробкин - Секретный проект - интерактивный комикс

megainformatic - Основы анимации во флеш на примере анимирования простейшей окружности

megainformatic - Парсер сайтов Введение

megainformatic - Я пишу музыку для себя и для продажи

megainformatic - Статьи на околомузыкальные темы - осень 2014 часть 1

megainformatic - рассказ - Чужие воспоминания - автор Синицин Андрей - 24.09.2014

megainformatic - Сайты живущие вне поисковых систем. Есть ли такие и как их найти ?

megainformatic - Game craft - проект разработки игровых и мультимедийных проектов

megainformatic - Game craft - моделируем scv

megainformatic - Game craft - моделируем scv - шаг 1 (часть 2)

megainformatic - Game craft - моделируем scv - шаг 2 (часть 3)

megainformatic - Game craft - Наложение текстуры на модель робота scv (часть 4)

megainformatic - Game craft - Прорисовка текстуры робота SCV шаг 5

megainformatic - Game craft - Экспорт модели из 3ds max в формат X

megainformatic - Game craft - отображение scv модели в формате x в d3d9-приложении

megainformatic - Game craft - управление игрой от Direct Input в d3d9 - приложении

megainformatic - Game craft - игровая камера в d3d9 - приложении

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 1

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 2

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 3

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 4

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 5

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 6

megainformatic - Приключения Кости Коробкина - Как я провел лето - онлайн комикс - страница 7

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 1

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 2

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 3

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 4

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 5

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 6

megainformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс - страница 7

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 1

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 2

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 3

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 4

megainformatic - Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс - страница 5

     
  Ваше Визуальное Шоу - программа для создания автономных видео-презентаций в форме слайд-шоу с озвучанием  
     
 

Как создать игру ? - Программируем сами.

Рассмотрение программирования игр под 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 есть эта функция - посмотрите сами -

 
     
  MsgProc  
     
 

Это наш обработчик системных сообщений

LRESULT WINAPI MsgProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam )
{
switch( msg )
{
case WM_DESTROY:
Cleanup();
PostQuitMessage( 0 );
return 0;

case WM_PAINT:
Render();
ValidateRect( hWnd, NULL );
return 0;
}

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 )
{
// создаем объект D3D
if( NULL == ( g_pD3D = Direct3DCreate9( D3D_SDK_VERSION ) ) )
return E_FAIL;

// формируем структуру для передачи в метод CreateDevice
D3DPRESENT_PARAMETERS d3dpp;

//обнуляем все поля переменной d3dpp
ZeroMemory( &d3dpp, sizeof( d3dpp ) );

//задаем оконный режим приложения
d3dpp.Windowed = TRUE;

//отключаем эффект обмена буферов заднего плана
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;

//формат буфера заднего плана пока неизвестен, т. к. будет зависеть от установленного //текущего разрешения экрана
d3dpp.BackBufferFormat = D3DFMT_UNKNOWN;

//создаем устройство Direct3D, здесь мы используем дисплейный адаптер по-умолчанию,

//т. к. в большинстве систем имеется только один адаптер, задаем аппаратный уровень //абстракции, передаем обработчик окна hWnd, задаем программную обработку вершин

//передаем указатели на переменную d3dpp и g_pd3dDevice

//в последнюю в случае успеха будет помещен указатель на интерфейс IDirect3DDevice9
if( FAILED( g_pD3D->CreateDevice( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING,
&d3dpp, &g_pd3dDevice ) ) )
{
return E_FAIL;
}

//если создание прошло успешно - возвращаем код возврата S_OK

return S_OK;
}

 
     
 

Функции Cleanup и Render -

//функция Cleanup предназначена для освобождения объектов D3DDevice и D3D

VOID Cleanup()
{
if( g_pd3dDevice != NULL )
g_pd3dDevice->Release();

if( g_pD3D != NULL )
g_pD3D->Release();
}

//функция Render выполняет

VOID Render()
{

//если указатель на интерфейс IDirect3DDevice9 равен NULL - возврат
if( NULL == g_pd3dDevice )
return;

//очищаем буфер заднего плана синим цветом
g_pd3dDevice->Clear( 0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB( 0, 0, 255 ), 1.0f, 0 );

//начало отрисовки объектов сцены
if( SUCCEEDED( g_pd3dDevice->BeginScene() ) )
{
//в дальнейшем в этом месте будет происходить фактическая отрисовка сцены

//конец отрисовки сцены
g_pd3dDevice->EndScene();
}

//представление буфера заднего плана на передний план (экран)
g_pd3dDevice->Present( NULL, NULL, NULL, 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] [далее]  
     
 

Оставленные комментарии



fle game engine - движок для создания игр
fle game engine - движок для создания игр


визиты
сегодня: 164
всего: 19205
посетители
сегодня: 52
всего: 20962
Время загрузки: 0,9454