Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
14 сентября 2026
12:57
Вход Регистрация Забыли пароль ?

Zombia | Windows | game | UnluckyGames
Zombia Platforms Windows Developer UnluckyGames Engine GameMaker Studio Genre TBD Release Dec 12 2016 Zombia, a game about killing zombies, explore a 6000x6000 map and discover building that have guns, ammo and medikits for surviving in this world. The game includes 11 awesome weapons that you have to find to survive..
подробнее...

Теги

сайты, игры, дизайн, продвижение, php, html, css, my sql, c++, delphi, photoshop, 3ds max, fl studio, трекерская музыка, уроки

Статьи сайта

Aquaplane | ZX Spectrum | arcade game | Quicksilva Ltd, 1983

Spy vs Spy | ZX Spectrum | arcade game | Beyond Software, 1985

Raster Runner | ZX Spectrum | arcade game | Mastertronic Plus, 1990

1kdj | ZX Spectrum | music editor | Ate Bit, 2009

Music Synth | ZX Spectrum | music editor | Your Sinclair, 1993

Chip Tracker | ZX Spectrum | music editor | Alone Coder, 2004

Prodigi Editor | ZX Spectrum | music editor | ,

A.Y. Tracker | ZX Spectrum | music editor | Jonathan Cauldwell, 1992

| ZX Spectrum | music editor | Alone Coder, 2006

X-Tracker | ZX Spectrum | music editor | Scorpion Software [2], 2004

Extreme's Tracker | ZX Spectrum | music editor | Red Limited Drunkards Group, 1999

Soundtracker | ZX Spectrum | music editor | Ultrasoft, 1993

Fast Tracker | ZX Spectrum | music editor | ,

Star Control | ZX Spectrum | strategy game | Accolade Inc, 1991

Stonkers | ZX Spectrum | strategy game | Imagine Software Ltd, 1983

Vikings | ZX Spectrum | strategy game | Challenge Software, 1989

Napoleon at War | ZX Spectrum | strategy game | CCS, 1986

Armageddon Man, The | ZX Spectrum | strategy game | Martech Games Ltd, 1987

Nebula | ZX Spectrum | strategy game | Red Shift Ltd, 1984

King's Bounty | ZX Spectrum | strategy game | Energo, 1993

General, The | ZX Spectrum | strategy game | CCS, 1989

Sea War | ZX Spectrum | strategy game | Panda Software, 1982

Battle of Britain | ZX Spectrum | strategy game | PSS, 1986

War in Middle Earth | ZX Spectrum | strategy game | Melbourne House, 1989

игры онлайн | games online | play online | zx-spectrum games

Tobruk | ZX Spectrum | strategy game | PSS, 1987

Genghis Khan | ZX Spectrum | strategy game | Positive, 1991

Gallipoli | ZX Spectrum | strategy game | CCS, 1986

Mapsnatch | ZX Spectrum | strategy game | Dinamic Software, 1984

Mad Mix Game | ZX Spectrum | maze game | Topo Soft, 1988

Equinox | ZX Spectrum | maze game | Mikro-Gen Ltd, 1986

Nanako Descends to Hell | ZX Spectrum | maze game | Ubhres Productions, 2009

Maritrini, Freelance Monster Slayer | ZX Spectrum | maze game | Ubhres Productions, 2012

Mad Mix 2 | ZX Spectrum | maze game | Topo Soft, 1990

Fat Worm Blows a Sparky | ZX Spectrum | maze game | Durell Software Ltd, 1986

Ant Attack | ZX Spectrum | maze game | Quicksilva Ltd, 1983

Dingo | ZX Spectrum | maze game | Tardis Remakes, 2011

Cheril of the Bosque | ZX Spectrum | maze game | Ubhres Productions, 2010

Pac-Mania | ZX Spectrum | maze game | Grandslam Entertainments Ltd, 1988

Boulder Dash | ZX Spectrum | maze game | Front Runner, 1984

Ms. Pac-Man | ZX Spectrum | maze game | Atarisoft, 1984

Pi-In'Ere | ZX Spectrum | maze game | Automata UK Ltd, 1984

Forest Raider Cherry | ZX Spectrum | maze game | Timmy, 2010

Mine Worker | ZX Spectrum | maze game | Firestarter, 2010

Go Bear Go! | ZX Spectrum | maze game | Sinclair User, 1988

Flash Beer Trilogy | ZX Spectrum | maze game | Weird Science Software, 2003

Pacman | ZX Spectrum | maze game | SuperSoft [2], 2000

Fast Food | ZX Spectrum | maze game | Code Masters Ltd, 1989

In The Walls of Eryx | ZX Spectrum | maze game | Monster's Legs Productions, 2016

Rockford | ZX Spectrum | maze game | Mastertronic Added Dimension, 1987

Tantalus | ZX Spectrum | maze game | Quicksilva Ltd, 1986

Gauntlet II | ZX Spectrum | maze game | US Gold Ltd, 1988

Maze Mania | ZX Spectrum | maze game | Hewson Consultants Ltd, 1989

Nonterraqueous | ZX Spectrum | maze game | Mastertronic Ltd, 1985

Mission Omega | ZX Spectrum | maze game | Mind Games, 1986

Gauntlet III: The Final Quest | ZX Spectrum | maze game | US Gold Ltd, 1991

     
     
 

4.12.2010, 18.12.2010

Разбор кода примера MultiAnimation (F:\GameDev\Microsoft DirectX SDK (August 2008)\Samples\C++\Direct3D\MultiAnimation)

 
     
 

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

модуль - MultiAnimation.cpp

//имя файла для земной поверхности, количество тайлов по вертикали и горизонтали

#define TXFILE_FLOOR L"\\Media\\Textures\\floor.jpg"
#define FLOOR_TILECOUNT 2

 
     
  CFirstPersonCamera g_Camera; // игровая камера  
     
 

Исполнение любого WinAPI приложения начинается с функции WinMain

поэтому в первую очередь смотрим - wWinMain

 
     
 

OnCreateDevice - функция вызывается модулем DXUT, непосредственно сразу же после создания Direct3DDevice (это происходит внутри DXUT). Загружаемые здесь ресурсы являются - D3DPOOL_MANAGED, т. е. загружаемые непосредственно в память видеокарты и зависящие от её состояния (от состояния объекта IDirect3DDevice).

загрузка моделей и текстур происходит в функции - OnResetDevice, эта функция вызывается специализированным объектом модуля DXUT.

 
     
 

После того, как будет полностью выполнена функция wWinMain приложение перейдет в цикл последовательного вызова двух функций -

OnFrameMove - метода подготовки сцены (анимации сцены);

OnFrameRender - метода отрисовки сцены.

Поступающие от системы сообщения обрабатываются в MsgProc

OnGUIEvent - обрабатывает сообщения элементов GUI (кнопок, полей ввода и т. п., эти элементы - классы DXUTgui)

KeyboardProc - обрабатываются сообщения от клавиатуры, но рассчитанные не на управление игрой, а более медленные операции, например вызов помощи/подсказки по клавише [F1] - Help.

Управление игрой требует достаточно оперативного отклика, поэтому должно происходить внутри OnFrameMove

 
     
 

Давайте сначала более детально проясним основные моменты работы кода.

Создадим резервные копии файлов MultiAnimation.h и MultiAnimation.cpp и смело начнём.

Первым шагом Я убрал (закомментировал) весь код, который относится к элементам GUI (g_DialogResourceManager, g_SettingsDlg, g_HUD), чтобы не усложнять и без того сложный код.

 
     
  Откомпилировал и убедился что всё работает.  
     
 

Далее я выяснил, что в функции MsgProc

строки кода -

if( -1 == g_dwFollow )
g_Camera.HandleMessages( hWnd, uMsg, wParam, lParam );

- это управление камерой от клавиатуры и мыши, если их закомментировать, то управление камерой становится невозможным.

 
     
  Далее я поставил режим компиляции Debug, расставил контрольные точки во всех значимых функциях и начал отслеживать как работает код в режиме отладки.  
     
  InitApp() - выполняется в первую очередь, здесь выставляется начальное положение камеры.  
     
  ModifyDeviceSettings - проверяются возможности d3d9device, необходимые для работы данного примера. А также выставляется начальный режим работы по отрисовке геометрии на аппаратном уровне (D3DDEVTYPE_HAL).  
     
  OnCreateDevice - создается шрифт для вывода отладочной информации, загружается текстура для пола, шейдер, рассчитываются параметры расположения пола и инициализируется материал для него.  
     
  OnResetDevice - выполняется загрузка кода шейдера, геометрии, параметры камеры, освещения, сбрасывается таймер  
     
  OnFrameMove - анимируются персонажи, камера  
     
  OnFrameRender - отрисовывается сцена  
     
  далее снова вызывается функция OnFrameMove, затем OnFrameRender и этот процесс повторяется бесконечно, пока не будет выполнено закрытие приложения.  
     
  В коде собственного примера я создал аналогичные функции, поэтому вызываться они должны в такой же последовательности, иначе будут ошибки. Это и предстоит проверить.  
     
  InitApp() - в моём коде вызову данной процедуры соответствует метод CAdventure::InitCamera()  
     
 

сразу же была выявлена ошибка - первым был вызван метод CAdventure::LoadMedia()

что соответствует OnCreateDevice вот и первая ошибка !

Из-за отсутствия вызова InitCamera() сцена рисовалась некорректно. Решение - вызов метода InitCamera() был вставлен первой строчкой в реализации метода LoadMedia()

 
     
 

Для реализации управления камерой, а также управления персонажами и добавления их в сцену нужно написать аналогичные методы для обработки и направления сообщений метода MsgProc камере.

В примере MultiAnimation управление персонажами (их добавлением) и некоторые другие опции реализованы кнопками GUI. Можно поступить так же, а можно перевести результат действия этих кнопок, привязав их к каким-либо клавишам и обрабатывая нажатия посредством DirectInput.

 
     
  На этом наш краткий обзор завершен.  
     
 

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



Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
Время загрузки: 0,3138