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


Balls and holes PC game / Balls and Holes PC игра
Dragonella игра версия 17.09.2020 браузерная /скачиваемая
Многоликий: dress - hordes win/linux/android/html5 игра браузерная /скачиваемая
Вакансии
Игродельня
Сегодня
19 марта 2024 8:24
Вход Регистрация Забыли пароль ?

Урок 3 Создание Win32-приложений. Создание меню и простых диалоговых окон.
  Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008  
подробнее...

Теги создание сайтов, создание игр, дизайн, игры, информатика, уроки photshop, php, c++, музыка, delphi, cms, робосайт
Статьи сайта
megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 13

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Рисуем шарик / How make the game - series of lessons - draw ball

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Содержание / How make the game - series of lessons - Index

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Разные шарики / How make the game - series of lessons - Different balls

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Анимация прыжков шарика / How make the game - series of lessons - Animation ball jumps

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Создание фона заднего плана / How make the game - series of lessons - Creating background for back plane

Balls on Lift / Шарики на лифте - Как создать игру - серия уроков - Вставка созданной графики, звуков и музыки в игру - Inserting created graphics, sounds and music in the game.

Balls on Lift / Шарики на лифте + Как создать игру - бесплатная игра + комплект уроков о том, как создавать контент для игры - спрайты, фоны, звуки, музыку, и вставить его в игру - How to create a game - free game + package of lessons on how to create content for the game - sprites, backgrounds, sounds, music, and insert it into the game

Balls on Lift / Шарики на лифте + Как создать игру - бесплатная игра + комплект уроков о том, как создавать контент для игры - спрайты, фоны, звуки, музыку, и вставить его в игру - How to create a game - free game + package of lessons on how to create content for the game - sprites, backgrounds, sounds, music, and insert it into the game

Развитие проекта fle game engine

Бинарная философия / Binary Philosofy

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 14

Вакансии

Коллекция php скриптов

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 15

megainformatic - Приключения Кости Коробкина - В гостях у тёти Светы часть 1 - интерактивный комикс

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

fle game generator - fle генератор игр - fly snow 3d падающий снег - расширяемый генератор визуальных образов, с музыкой mp3, ogg и генерацией игр

fle game generator - fle генератор игр - fly snow 3d падающий снег - расширяемый генератор визуальных образов, с музыкой mp3, ogg и генерацией игр

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 16

megainformatic Создание и размещение видео баннера mp4

megainformatic Использование баннер-ротатора

megainformatic fle game engine Simple game / Пример простой игры

megainformatic fle game engine Simple game / Пример простой игры - страница 1 - Спрайты

Creating game on fle game engine - Draw Line - This can be helpful/ Создание игры на fle game engine - Рисование линий - Это может пригодиться.

Платная подписка на fle game engine

megainformatic Создание игры на fle game engine - Simple game - страница 2 - Объекты / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 3 - Объекты / Пример простой игры

Платная подписка на fle game engine

megainformatic Создание игры на fle game engine - Simple game - страница 4 - Код - Настройка параметров Scene Editor fge и написание кода для вывода спрайта шарика в вашем первом игровом приложении / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 5 - Отображаем прыгающий шарик, узнаем как задается для спрайта его центр и знакомимся с векторной системой координат / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 6 - Загрузка игровой сцены / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 7 - Перемещения игровой сцены / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 8 - Закрываем часть сцены от пустот при помощи черной текстуры с прорезью, ограничиваем перемещение сцены / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 9 - Реализуем корректное попадание в ямы и около ям - определяем границы спрайтов ям и спрайта прыгаюшего шарика / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 10 - Проверка столкновений / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game - страница 11 - Игровой счёт, звуки, музыка / Пример простой игры

megainformatic Создание игры на fle game engine - Simple game extended - страница 1 - Создание новой сцены (уровня, комнаты), добавление новых возможностей / Пример простой игры - расширенная версия

Платная подписка на simple game fle game engine версия 1.0.7 от 05.01.2017

Платная подписка на simple game fle game engine версия 1.0.7 от 05.01.2017

Советы копирайтеру - как не обмануть и не быть обманутым

Balls and Holes игра скачать + как создать игру на fle game engine

Balls and Holes игра скачать + как создать игру на fle game engine

Something: Unexplained 2 captive of desires

KKK Коллекционное издание: Веселый Буквоежка Комикс + Костя Коробкин Комикс + Нечто: Необъяснимое в плену желаний 2 начало

KKK Коллекционное издание: Веселый Буквоежка Комикс + Костя Коробкин Комикс + Нечто: Необъяснимое в плену желаний 2 начало

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 17

megainformatic - Игродельня

megainformatic - Новости страница 542

megainformatic - С днём защитника отечества !

megainformatic fle game engine fle / Пример простой игры fle - Скроллинг больших локаций

megainformatic - Костя Коробкин - В гостях у тёти Светы часть 2 Живые машины (kk as) - онлайн комикс - страница 18

megainformatic - Шарики и Ямки игра PC

megainformatic - Шарики и Ямки игра PC

megainformatic fle game engine fle / Изучаем основы c++ - переменные на примере реального игрового проекта Balls and Holes

megainformatic - Реферальная ссылка

     
 

Видео урок посвященный созданию игры на примере игры Ну, Погоди ! - рождение игры часть 2.

Элементарные и простые игры на примере которых можно в delphi 7 на directx 8.1 api научиться создавать игры.

 
     
 
Урок 4 Построение класса приложения
 
О том, что потребуется для данного урока читайте в основном разделе - уроки delphi directx 8.1
 
Далее у читателя подразумевается наличие базовых знаний языка Delphi.
 
[назад] [страница 1] [далее] [к содержанию]
 
Из предыдущих уроков вы уже почерпнули некоторую информацию о том, как строится и функционирует типичное D3D-приложение. Эта информация является общей для всех приложений DirectX написанных как на C++, так и на Delphi. Разница лишь связана с синтаксическими особенностями данных языков программирования и средами программирования в которых происходит работа.
 
Здесь и далее мы познакомимся с основными особенностями Direct3D-приложения, которые необходимо учитывать при разработке его базового класса.
 
За основу мы возьмем класс CD3DApplication, рассмотрим и протестируем на конкретных примерах его особенности, а далее покажем класс, который используется в игре "Ну, Погоди!" и проведем небольшое сравнение.
 
С исходным кодом класса CD3DApplication вы можете познакомиться заглянув в модуль D3DApp.pas из папки common библиотеки delphi directx 8.1
 
Данный класс является абстрактным (также как и например TForm), поэтому нужно сначала создать производный класс от данного, а затем уже работать с новым созданным классом, используя его для своих целей, что и происходит во всех примерах из DirectX SDK.
 

CD3DApplication производится напрямую от TObject.

Основное назначение класса - обеспечение работы WinAPI-приложения с использованием также DirectX API, другими словами данный класс предоставляет удобный для работы интерфейс для вызова необходимых приложению интерфейсов Windows и главным образом интерфейсов DirectX.

 

Основные методы этого класса - это

Create

Destroy

Create_

Run

MsgProc

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

OneTimeSceneInit

InitDeviceObjects

RestoreDeviceObjects

FrameMove

Render

InvalidateDeviceObjects

DeleteDeviceObjects

FinalCleanup

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

 
В качестве основы для изучения данного класса и экспериментов с ним мы возьмем пример SwitchScreenModes
Скачиваний : 3430
из предыдущего урока. Для экспериментов над кодом класса CD3DApplication советую Вам взять файл D3DApp.pas и его копию разместить внутри папки того проекта в котором Вы будете проводить эксперименты. При этом среда Delphi будет использовать локальную копию вместо копии из папки common, а Вы сможете проводить какие угодно изменения не вмешиваясь в оригинальный код D3DApp.pas
 
Класс приложения CD3DApplication функционирует абсолютно по тем же правилам, которые мы рассмотрели в предыдущих уроках.
 

Метод Create задает начальные значения для множества полей данного класса,

в частности запоминается ссылка на самого себя -

g_pD3DApp := Self;

задаются начальные размеры окна приложения

m_dwCreationWidth := 400;
m_dwCreationHeight := 300;

и ряд других, назначение которых Вы узнаете из дальнейшего повествования

 
Данный метод - метод конструктора класса, вызывается при создании нового объекта данного класса и выполняет базовую начальную инициализацию заданных полей класса теми значениями, которые заданы в реализации данного конструктора, все остальные поля обнуляются или выставляются в nil (если это указатели)
 

Метод Destroy - метод деструктора класса, вызывается при удалении объекта класса. При этом освобождается память занятая объектом и связанными с ним ресурсами. Если таких ресурсов достаточно много и они занимают значительный объем, то выполнение метода может занимать значительное время - вспомните любую игру, в которую Вы играли в последний раз, почему игра по выходу из нее закрывается не сразу, а через некоторое время? Именно поэтому.

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

Теперь Вам должно быть понятно то, почему чем больше игра, тем дольше она запускается при старте или закрывается при выходе из неё.

 
Особенностью данного метода является то, что он должен вызываться не напрямую, а посредством метода Free. Для этих же целей можно применять функции SAFE_DELETE и FreeAndNil
 

Метод Create_ - представляет метод начальной инициализации класса приложения. Его имя происходит от имени оригинального метода Create на C++. Но поскольку в языке Delphi для конструктора и деструктора применяются специальные имена (Create и Destroy), а в языке C++ имя конструктора и деструктора совпадает с именем класса, то данный метод и получил такое название. Знак подчеркивания обозначает, что данный метод именно метод инициализации, а не метод конструктора!

Внутри данного метода вызывается весь код, необходимый для начальной инициализации DirectX-приложения:

создается объект Direct3D, выполняется создание списка графических устройств, создается окно приложения (если требуется), задается стиль, границы окна и рабочей области, запускается DXTimer осуществляющий периодические процессы D3D-приложения - цикл подготовки кадра и цикл отрисовки, вызывается виртуальный метод OneTimeSceneInit осуществляющий однократную инициализацию, должен быть реализован в производном классе, поэтому его работа целиком зависит от того, как он будет реализован, наконец метод Initialize3DEnvironment выполняет окончательную инициализацию 3D-среды, главным образом создавая объект IDirect3DDevice8 на основе параметров, которые были получены на предыдущих этапах выполнения.

После этого приложение переходит в состояние готовности. Это означает, что начинаются периодические процессы, выполняющие циклическую работу:

метод Run - если приложение работает как WinAPI, то данный метод вызывается напрямую и будет запущен цикл проверки сообщений на основе которого и работает типичное WinAPI-приложение.

метод MsgProc - представляет реализацию оконной процедуры приложения, которая отвечает за обработку поступающих в неё сообщений от системы. Эти сообщения играют важную роль, т.к. при помощи них и происходит собственно работа приложения в системе Windows. При каких-либо событиях, например, нажатии пользователем клавиши или перемещении мыши система реагирует на них и создает соответствующие сообщения. Эти сообщения попадают в очередь сообщений и если предназначены конкретному приложению имеющему фокус, то система передает их ему. Помимо описанных в качестве сообщений могут быть любые другие - достаточно заглянуть в код метода MsgProc и вы увидите как обрабатывается приложением сообщение об активации/деактивации приложения, реакция на команду окна меню и т.д.

 
Оставшиеся методы - OneTimeSceneInit, InitDeviceObjects, RestoreDeviceObjects, FrameMove, Render, InvalidateDeviceObjects, DeleteDeviceObjects, FinalCleanup

выполняют если перечислять по порядку - однократную инициализацию сцены, начальную инициализацию объектов, восстановление объектов устройства, подготовку кадра, отображение, нарушение объектов устройства, удаление объектов устройства, окончательную очистку (освобождение ресурсов использованных приложением).

 

Назначение метода OneTimeSceneInit состоит именно в однократном его вызове. Внутри данного метода можно создавать такие объекты, которые необходимо создать лишь однократно при начальном старте - объект DirectInput, некоторые общие ресурсы, которые будут использоваться на протяжении всего приложения.

InitDeviceObjects - в отличие от предыдущего метода может вызываться и не один раз, однако перед его вызовом необходимо вызывать DeleteDeviceObjects т.е. сначала удалить все используемые объекты, иначе это приведет к ошибкам.

Методы RestoreDeviceObjects и InvalidateDeviceObjects также работают в логической паре. После инвалидации объектов их обязательно нужно восстановить, перед восстановлением обязательно инвалидировать. Иначе это опять же приведет к ошибкам. В этих методах нуждаются объекты, зависимые от текущего устройства. Если вдруг произошел его сброс, то происходит инвалидация, после чего нужно обязательно выполнить восстановление. К таким объектам относятся модели, шейдеры.

 

Метод FrameMove - исходя из названия "движение кадра" - отвечает за подготовку следующего кадра анимации. Как таковая отрисовка в нем не происходит. Его основное назначение - это вызов метода UpdateInput который выполняет опрос устройств ввода клавиатуры и мыши, а также выполнение всех необходимых вычислений, которые осуществляют перемещение персонажей, логику игры и прочее

От сложности процессов, происходящих внутри данного метода напрямую будет зависеть производительность приложения, потому что данный метод в паре с методом Render периодически вызывается таймером DXTimer через минимальные интервалы времени, чем и определяется FPS - частота кадров.

Метод Render - не должен содержать слишком "тяжеловесного" кода, т.к. его основная задача - как можно быстрее отрисовать то, что было подготовлено на предыдущей стадии. Для ускорения работы данного метода выполняются различные подготовительные стадии, в частности, отсечение объектов, не попадающих в поле зрения камеры. Правильное выполнение этого процесса (естественно внутри FrameMove, а не внутри Render) гарантирует то, что игра "не будет тормозить" даже при кажущемся большом количестве игровых объектов присутствующих в игровой сцене. Они просто будут исключаться из цикла отрисовки, если не попадают в определенную область видимости.

 
Итак, вкратце мы рассмотрели что к чему. Пора приступить к экспериментам. Под экспериментами я понимаю более углубленное изучение кода класса CD3DApplication. Мы будем брать части кода и комментировать их, исключая из компиляции, затем наблюдать результат полученный при этом. Этим методом не всегда, но очень часто можно лучше уяснить для себя как работает та или иная часть приложения. Кроме того, такие эксперименты будут крайне полезны Вам если у Вас еще не очень достаточно опыта в программировании игр и приложений вообще. Такие эксперименты позволят получить общее представление о методах тестирования и отладки кода.
 

Откроем пример SwitchScreenModes и копию модуля D3DApp.pas, которую Вы должны были скопировать из папки common в папку данного проекта

Открыть модуль D3DApp.pas достаточно просто - в коде модуля SwitchModesUnit.pas найдите имя D3DApp в списке uses и удерживая нажатой клавишу [Ctrl] щелкните по этому имени левой кнопкой мыши.

Модуль D3DApp.pas будет открыт для Вас. Чтобы удостовериться, что Вы действительно работаете с копией, а не с оригиналом из папки common, попробуйте выполнить сохранение. Если диалог укажет на папку проекта, а не на common, значит всё верно, можно смело приступать к экспериментам!

 

Для начала мы заглянем внутрь метода CD3DApplication.Create_ и выясним несколько фактов:

Как происходит построение списка адаптеров и какой видео режим выбирается по умолчанию - нам нужно будет поработать с кодом внутри BuildDeviceList

Какие особенности учитываются при реализации Initialize3DEnvironment для инициализации 3D-среды

 

Самый простой эксперимент - закомментируем кусок кода -

{hr:= BuildDeviceList;
if FAILED(hr) then
begin
SAFE_RELEASE(m_pD3D);
Result:= DisplayErrorMsg(hr, MSGERR_APPMUSTEXIT);
Exit;
end;}

заключив его в фигурные скобки, выполним компиляцию, запустим приложение и посмотрим что произошло.

Мы получим Generic application error и приложение будет закрыто. Даже ничего не зная о функционале работы CD3DApplication из этого можно заключить, что данный код является критичным для работы приложения.

Раскомментируем код и отправимся вглубь метода BuildDeviceList для экспериментов внутри него.

Замечу, что показанная техника экспериментов с комментированием участков кода для лучшего уяснения его назначения и работы уже рассматривалась в ряде статей, в частности в - Теория и практика 3D-игр

 

Для быстрого перехода к реализацию BuildDeviceList также достаточно щелкнуть по этому идентификатору левой кнопкой мыши вкупе с клавишей [Ctrl].

Посмотрим как происходит работа внутри данного метода в режиме отладки. Для этого достаточно установить в нужной строке кода контрольную точку останова и запустить приложение в режиме отладки.

 
 
Для этого щелкаем левой кнопкой мыши в указанной позиции и там появится красный кружок вместо синего (как на рисунке).
 
 
Запускаем приложение в режиме отладки кнопкой Run как показано на рисунке.
 

Для пошагового исполнения кода используем клавишу [F8]. Для входа в код вызываемых процедур и функций можно использовать [F7].

Параллельно можно исследовать содержимое переменных наблюдая как изменяются их значения.

Сначала мы наблюдаем как выбираются все видео- режимы чьё разрешение >= 640x480

Отфильтровываются все подобные видеорежимы, отличающиеся лишь частотой покадровой развертки.

Заносятся в список только имеющие уникальный формат текстуры, отсортировываются в порядке увеличения разрешения и качества формата текстур.

Далее выясняется количество доступных графических устройств в системе, имеют ли они тип HAL (аппаратный уровень абстракции), могут ли использоваться в оконном режиме, совместимы ли с режимом рабочего стола, поддерживается ли аппаратная трансформация вершин, выясняется формат буфера глубины и т.п.

Таким образом основная задача данного метода - выборка наиболее подходящих видеорежимов и занесение их в список доступных.

 

Какой режим выставляется по умолчанию?

Все видеорежимы попадают в поля структуры m_Adapters представляющей список адаптеров в системе. Каждый адаптер в свою очередь имеет список устройств, список видеорежимов, форматов и т.д.

В конце данного метода выставляется текущий адаптер и устройство -

m_Adapters[a].dwCurrentDevice := d;
m_dwAdapter := a;
m_bWindowed := True;

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

Для полного ответа на поставленный вопрос в методе Create_ попробуйте сразу после выполнения BuildDeviceList добавить такой тестовый код -

var

//**
cd: Cardinal;
//нужно объявить как глобальную переменную вне метода Create_
//**

{...}

//остальное уже в методе Create_

hr:= BuildDeviceList;
if FAILED(hr) then
begin
SAFE_RELEASE(m_pD3D);
Result:= DisplayErrorMsg(hr, MSGERR_APPMUSTEXIT);
Exit;
end;

//**
cd := m_Adapters[m_dwAdapter].dwCurrentDevice;
//**

 

установив точку останова на коде созданной строки вы можете получить в режиме отладки информацию о том, какое текущее устройство устанавливается по-умолчанию.

Используя нижеследующий код, который Вы можете почерпнуть из метода BuildDeviceList можно получить всю необходимую информацию -

var

//**
CurrentDevice, DeviceModeNum: Cardinal;
DesktopMode: TD3DDisplayMode;
p_AdapterInfo: PD3DAdapterInfo;
pDeviceInfo: PD3DDeviceInfo;
DeviceCurrentMode: TD3DModeInfo;
//**

//аналогично нужно объявить как глобальные переменные вне метода Create_, если сделать локальные, то их значения могут стать недоступны при отладке из-за оптимизации в регистрах процессора, поэтому для целей отладки и проверки получаемых значений нужны глобальные переменные

//**
CurrentDevice := m_Adapters[m_dwAdapter].dwCurrentDevice;
DesktopMode := m_Adapters[m_dwAdapter].d3ddmDesktop;
p_AdapterInfo := @m_Adapters[m_dwAdapter];
pDeviceInfo := @p_AdapterInfo^.devices[CurrentDevice];
DeviceModeNum := pDeviceInfo^.dwCurrentMode;
DeviceCurrentMode := pDeviceInfo^.modes[DeviceModeNum];
//**

теперь всё сразу становится очевидно -

сначала определяется текущее устройство CurrentDevice, затем текущий режим рабочего стола (если это Вам потребуется), считывается информация о текущем адаптере, по ней определяется информация о текущем устройстве pDeviceInfo, затем считывается номер текущего видеорежима и определяются его параметры

 

Двигаемся дальше. Если будет обнаружено, что обработчик окна m_hWnd пуст, т.е. требуется создать окно средствами WinAPI, то оно будет создано. Иконка, указатель мыши, цвет фона, стиль, границы, размеры задаются далее.

Если обработчик окна не был пуст, то запоминается указатель на старую оконную процедуру и устанавливается новый, обрабатывающий поступающие сообщения внутри метода MsgProc, а также вызывающий старую оконную процедуру. Это гарантирует корректную обработку поступающих приложению сообщений даже при использовании VCL-окон и приложения работающего на основе TApplication, как это имеет место в примерах всех предыдущих уроков и игре "Ну, Погоди!". Если забыть про этот важный момент - при создании собственного базового класса D3D-приложения, то можно долго гадать о причинах возможных ошибок и некорректной его работы.

 

Метод OneTimeSceneInit целиком зависит от реализации его в производном классе.

Остается рассмотреть метод Initialize3DEnvironment и поэкспериментировать с ним.

 

Заглянув в первые строки кода данного метода сразу определяем, что текущий видеорежим это pModeInfo

вызов AdjustWindowForChange; на самом деле выполняет скрытие окна полноэкранного режима

Далее идет настройка параметров отображения и самое интересное, что служит ответом на второй вопрос, поставленный в конце 3 урока

// Create the device
{//**
hr := m_pD3D.CreateDevice(m_dwAdapter, pDeviceInfo^.DeviceType,
m_hWndFocus, pModeInfo^.dwBehavior, m_d3dpp,
m_pd3dDevice);
}

hr := m_pD3D.CreateDevice(m_dwAdapter, pDeviceInfo^.DeviceType,
m_hWndFocus,
D3DCREATE_HARDWARE_VERTEXPROCESSING,
m_d3dpp,
m_pd3dDevice);

В чём же причина? Если заглянуть в документацию по DirectX 8 ,то в описании IDirect3D8::CreateDevice вы найдете список значений параметра BehaviorFlags

среди них D3DCREATE_PUREDEVICE = $10; и D3DCREATE_HARDWARE_VERTEXPROCESSING = $40; именно то значение, которое имеет данный флаг если использовать строку кода, которая показана закомментированной (зеленого цвета)

Приведенный чуть ниже код исправляет данный недостаток! Причина объяснена в документации по DirectX 8 -

D3DCREATE_PUREDEVICE
Specifies that Direct3D does not support Get* calls for anything that can be stored in state blocks. It also tells Direct3D not to provide any emulation services for vertex processing. This means that if the device does not support vertex processing, then the application can use only post-transformed vertices.

Т. е. установка данного флага не позволяет вызывать методы Get* и требует использования только пост-трансформированных вершин. Метод GetViewport как раз и не выдает при этом нужной информации!

 
оставшийся код располагает окно поверх остальных окон (если используется оконный режим), проверяются возможности устройства и формируется соответствующая информационная строка m_strDeviceStats, запоминаются параметры бэк-буфера, отображается указатель мыши и ограничивается его перемещение заданной областью, происходит вызов методов InitDeviceObjects и RestoreDeviceObjects, в случае ошибок происходит переключение на более низкий уровень возможностей графического устройства и рекурсивный вызов метода Initialize3DEnvironment.
 
По окончании выполнения метода Create_ приложение переходит в состояние готовности и запускается непрерывный цикл отрисовки вызывающий поочередно методы FrameMove и Render. Это происходит внутри метода TAppForm.ApplicationEventsIdle
 
 
 
[назад] [страница 1] [далее] [к содержанию]
 
 
     
     
     
     
оцените статью:
0
Понравилось!
0
Не понравилось!


     
  видео-рассказ, уроки godot
#442 незнакомка / stranger girl - видео-рассказ
играть
Осваиваем движок godot 3.4
читать
   
   
     
     
  игры Многоликий: dress - hordes эпизоды с 1 по 4
Многоликий: dress - hordes эпизод 1 - win/linux/android/html5 скачать free версию, купить полную версию, играть в браузере
играть
Многоликий: dress - hordes эпизод 2 - win/linux/android/html5 скачать free версию, купить полную версию, играть в браузере
скачать
Многоликий: dress - hordes эпизод 3 - win/linux/android/html5 скачать free версию, купить полную версию, играть в браузере
купить
Многоликий: dress - hordes эпизод 4 - win/linux/android/html5 скачать free версию, купить полную версию, играть в браузере
купить
   
     
  игры, музыкальные клипы
enterra игра на java libgdx - скачать
скачать
enterra 3d игра на godot 3.5.1 - скачать
скачать
Музыкальная новогодняя ночь 2023
смотреть
Многоликий: dress - hordes win/linux/android/html5 version - скачать или играть в браузере
скачать/играть
   
     
     
     
     
  музыкальный клип, игры
Kate Ryan - Ella Elle L'a клип смотреть
смотреть
sexonix играть в браузере
играть
Многоликий: dress - hordes pc игра free версия - скачать
скачать
Многоликий: dress - приключения начинаются - parallel reality - скачать - версия для Win, Linux, браузерная и android
скачать
   
     
     
     
  разработка игр, анимационный фильм, новогодняя дискотека 2020 - песни на итальянском, игра про лифт
разработка игры gdess 2 видео-дневники разработки
смотреть
Игра Дарвина смотреть
смотреть
ciao 2020 - чао 2020 - новогодняя дискотека в итальянском стиле от Ивана Урганта и компании
смотреть
One Way The Elevator проходим игру вместе с Dr. Perec !!!
смотреть
   
     
     
  игры, инструменты разработки, анимационный фильм, фильм.
БОЛЬШАЯ ИГРА или СЕКРЕТЫ УСПЕХА которых вы можете достичь сами - уникальный набор инструментов, игровых движков (на delphi, c++, html5), проектов, обучающих уроков и материалов, исходных кодов реальных игр и многое другое - все создано 1 человеком - представлен накопленный за 14 лет опыт
купить
Астра затерянная в космосе смотреть
смотреть
Костя Ника Время Лета 2006 фильм смотреть онлайн
смотреть
Временной поток - игра в жанре визуальной новеллы - скачать
скачать
   
     
     
  игры
Witches Trainer 1.6 and Innocent Witches 0.1 - Школа ведьм и Невинные ведьмы - игра скачать
скачать
Futa in the Police Academy - игра скачать
скачать
gdess cкачать игру про Нику и Костю
скачать
gdess2 приобрести игру про Нику и Костю
купить
   
     
  игры в браузере
Prince of Persia аркада, фихтование, экшн, adventure в браузере
играть
Dreams Reality Мечты и Реальность играть в браузере
играть
Little Office Trouble Небольшая Офисная Оказия играть в браузере
играть
Tetris в браузере
играть
   
     
     
  игры в браузере
Neon Battle Tank 2 аркада в браузере
играть
Robocop аркада в браузере
играть
Robocop (Ocean версия) аркада в браузере
играть
Karateka аркада, драки в браузере
играть
   
     
     
  игры в браузере
Prehistorik 2 - аркада в браузере
играть
Игры с конкурса Код 15 - посмотреть стримы The Dreik, megainformatic, Котострим, скачать игры
играть
Большая игра Mega game играть в браузере
играть
Black planet Черная планета - играть в браузере, почитать о её разработке
играть
   
     
     
  игры в браузере
Teenage Mutant Ninja Turtles II аркада в браузере
играть
2 nights играть в браузере
играть
Wolfenstein 3D - экшн в браузере
играть
Golden Axe - экшн в браузере
играть
   
     
     
  игры в браузере (3), создание музыки в браузере (1)
Aladdin аркада в браузере
играть
Surprise! Adlib Tracker 2 (sadt 2) в браузере
играть
Lamborghini аркада, гонки в браузере
играть
Risky Woods аркада в браузере
играть
   
     
     
  игры в браузере
Black Box horror играть в браузере
играть
Любовные булавки logic играть в браузере
играть
Fire power игра про танки в браузере
играть
Red Ball Forever аркада играть в браузере
играть
   
     
     
  игры в браузере
Teresa - dos эро квест в браузере
играть
Shadow Knights аркада про ниндзя в браузере
играть
БК-0010.01 эмулятор теперь браузере
бк 0010.01 - играть!
The Cycles - International Grand Prix Racing играть в браузере
играть
   
     
     
  игры в браузере
Fantastic Dizzy adventure игра в браузере
играть
Ugh! аркадная игра в браузере
играть
Budokan: The Martial Spirit - fighting играть в браузере
играть
Vida - ретро эротический квест в браузере
играть
   
     
     
  игры в браузере (3), скачиваемые (1)
Легендарный Starcraft теперь в вашем браузере
играть
Inspace космический скролл шутер игра в браузере
играть
Key shield аркадная игра в браузере
играть
Team Ninja Unkende 4 - Ninja Gaiden 4 фанатский проект pc игра скачать
скачать
   
     
     
  игры в браузере
Laser Adventures - fast hardcore shooter играть в браузере
играть
Петька и Чапай спасают галактику продолжение !!! играть в браузере
играть
Ninjuzi - прыгучий neo shooter игра в браузере
играть
Plants vs Zombies 3 tower defence игра в браузере
играть
   
     
  игры в браузере, скачиваемые игры
Shmupnage - cosmos shooter играть в браузере
играть
Undercat pc игра скачать
скачать
Cold station - shooter, survival играть в браузере
играть
Cut the rope - аркада, логика играть в браузере
играть
   
     
     
  игры в браузере
Crown Dungeon 2 играть в браузере
играть
dragonella играть в браузере
играть
crush shooter играть в браузере
играть
grievous medical shooter играть в браузере
играть
   
     
     
  игры в браузере
Foxyland 2 играть в браузере
Foxyland 2
quidget 2 играть в браузере
quidget 2
эмулятор игры Ну, Погоди !
играть
Pigglet игра русская версия, english версия играть в браузере
играть
   
     
  полезный софт, игры в браузере
Google Media Grabber - Простая и компактная программа для скачивания картинок из гугл
скачать
Anova играть в браузере
anova игра
A Knots Story играть в браузере
A Knots Story
Sabotage играть в браузере
sabotage
   
     
  сервисы, игры
Онлайн Сервис для приема фото в печать с предварительной обработкой
24500 руб.
satellite / спутник - визуальная новелла полная версия
скачать
ria pc game robocop
игра
star inheritance звездное наследие игра zx spectrum
играть
   
     
  игры, программы
ria pc game - pink dreams come true - розовые мечты сбываются
купить / скачать
эмулятор игры Электроника ИМ Автослалом версия 24.09.2019
купить
Онлайн чат для вашего сайта - megainformatic live chat
5500 руб.
Game Builder - Строитель Игр
скачать
   
     
  поздравления, уроки рисования, уроки создания сайтов
НОВОГОДНЕЕ ОБРАЩЕНИЕ СОЗДАТЕЛЯ Мега Информатик К ЖИТЕЛЯМ ПЛАНЕТЫ интернет
читать
Рисуем красивую девушку всего за 6 шагов
читать
Что нужно знать для создания сайта ?
читать
Нэн - интерактивный комикс
150 руб.
   
     
  комиксы, музыка, рассказы
Приключения Кости Коробкина - С новым годом - интерактивный комикс (kk hny) - онлайн комикс
читать
Костя Коробкин - СЕКРЕТНЫЙ ПРОЕКТ - интерактивный комикс (kk scp) - онлайн комикс
читать
Новогодняя дискотека 2013 на megainformatic точка ru
слушать
Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА
читать
   
     
  игра для разработки, калькулятор услуг, cms, комикс
комплект freeware игра Шарики на лифте / Balls on lif + Как создать игру / How make a game
250 руб.
Калькулятор рассчёта стоимости услуг зубопротезирования для стоматологической клиники
разработка на заказ
Система управления сайтом megainformatic cms admin files без mysql только на файлах
1250 руб.
Приключения Кости Коробкина - Как я провел лето - интерактивный комикс (akk hiss)
350 руб.
   
     
  игры для разработки, комиксы
dream world - пример 2d игры созданной на fle game engine - c++ и directx 9
скачать
Костя Коробкин - Компания Зергов (kk kz) - онлайн комикс
читать
Веселый Буквоежка - онлайн комикс
читать
Создание игры на fle game engine - Simple game
скачать
   
     
  игры шарики и ямки, комиксы про Костю Коробкина, ria xxl игра, fly snow 3d генератор эффектов снега, частиц и др. -
игра Шарики и Ямки - Каникулы Зеленого Шарика PC / Balls and Holes - Green Ball Holidays PC game
скачать
Костя Коробкин Комикс читать онлайн
читать
ria xxl - версия 4.09.2019 купить
150 руб.
fle game generator - fle генератор игр - fly snow 3d падающий снег версия 1.0.3.1 от 13.12.2016 - расширяемый генератор визуальных образов и игр
350 руб.
 
     
  Создай свою игру на fle game engine -
fle game engine новый современный движок для создания игр на платформе Windows Directx 9c - которая поддерживается большинством ПК
800 руб.
Риа PC игра / Ria PC game
240 руб./скачать
игра Шарики на лифте Серия 1 Разгони Лифт / Balls on Lift Level 1 Run The Lift версия 0.9.2 05.10.2016 / version 0.9.2 05.10.2016
скачать
скачать
 
     
  Для создания сайта - модуль отзывов/комментариев для вашего сайта в составе megainformatic cms express files -
Модуль отзывов/комментариев для вашего сайта
700 руб.
Модуль коротких ссылок
1250 руб.
larry xxl фан проект купить версия 4.09.2019
150 руб.
эмулятор игры Электроника ИМ-04 Веселый Повар версия от 7.07.2019
500 руб.
 
     
  Уроки Flash, бесплатные Flash - игры.
Уроки Flash
бесплатно
бесплатные flash игры
бесплатно
Модуль галерей для любой cms
2500 руб.
megainformatic cms rs
14000 руб.
 
     
  Поддержка сайтом нескольких языков (multi lang), создание собственной системы личных кабинетов, соц. сети или фриланс - биржи (megainformatic cms social), создание сервиса коллективных покупок на базе megainformatic cms groupon, онлайн сервис подсчёта статистики ключевых слов в статьях вашего сайта keywords gen + описание кода данного сервиса, с возможностью бесплатно реализовать его аналог на своём собственном сайте.
Поддержка сайтом нескольких языков
500 руб.
megainformatic cms social
12000 руб.
megainformatic cms groupon
14000 руб.
Онлайн - сервис подсчёта статистики ключевых слов
бесплатно

megainformatic.ru/webjob/ - сервис для фриланс проектов - место встречи заказчиков и исполнителей

 
 

Социальная сеть megainformatic.ru/webjob/

megainformatic.ru/webjob/
webjob
веселая математика
бесплатно
template selector
350 руб.
megainformatic cms express files + модуль slider
300 руб.

megainformatic.ru/webjob/ - сервис для фриланс проектов - место встречи заказчиков и исполнителей

 
     
 

Системы управления сайтом, уроки

megainformatic cms admin
1250 руб.
уроки delphi direct x 3d
бесплатно
megainformatic cms seo
550 руб.
megainformatic cms stat kit
500 руб.

megainformatic cms admin - простая и компактная система для работы и управления сайтом

 
     
 
megainformatic cms express
350 руб.
megainformatic cms e-mailer
5800 руб.
megainformatic cms e-shop
3000 руб.
megainformatic cms e-pro
500 руб.
 
 
 
 
     
     
 

megainformatic cms free и серия продуктов - Уроки Photoshop

megainformatic cms free
бесплатно
уроки photoshop
650 руб.
уроки photoshop - чудеса !
700 руб.
уроки photoshop -  рисуем и анимируем
750 руб.

Данная серия посвящена описанию приемов и методов создания изображений, с помощью инструментария программы Adobe Photoshop. Кроме того, многие описанные средства могут вам помочь при освоении и многих других программ для работы с растровой графикой - GIMP, Corel Photo Paint и других.

 

 
 
     
 

бесплатные игры 2d и 3d, а также эмулятор Ну, Погоди!

эмулятор игры Ну, Погоди !
300 руб.
Дорога в Город
бесплатно
Donuts 3D
бесплатно
Нечто: Необъяснимое
бесплатно

Это серия распространяемых бесплатно игр. Вы не только можете поиграть, но и скачать исходники, получив тем самым возможность внести изменения в игру или создать новую !!! (эмулятор Ну, Погоди! распространяется платно).

 
     
 
 
 
     
 

серия игр про Веселого Буквоежку, и бесплатно распространяемая игра Нечто: Необъяснимое - в плену желаний

Говорящий комикс - Веселый Буквоежка
350 руб.
Настольная игра - Веселый Буквоежка
510 руб.
Как создать игру ? Программируем сами
fle game engine
Нечто: Необъяснимое - в плену желаний
бесплатно

Здесь представлены новинки жанра - Говорящий Комикс, Настольная игра, А также продукт, который позволит Вам научиться создавать игры самостоятельно. Ну и конечно изюминка в своём роде - бесплатная игра - Нечто: Необъяснимое - в плену желаний

 
     
 
 
 
     
 

Серия бесплатных онлайн уроков, посвященных 3ds max, photoshop, c++, directx, delphi и php.

Уроки 3ds max
бесплатно
Уроки c++ и directx
бесплатно
Уроки трекерской музыки
бесплатно
Рисуем волка
бесплатно
Уроки php и создания сайтов
бесплатно
Пример 3d игры на delphi directx с исходниками
бесплатно
Набор разработчика игр
500 руб.
Ваше Визуальное шоу
300 руб.

Описаны практические примеры решения различных задач, возникающих при создании игр и сайтов.

Продукты Набор разработчика и Ваше Визуальное Шоу распространяются платно.

 
     
 
 
 
     
     
 

уроки и продукты различной тематики

Как создать игру Ну, Погоди! на delphi directx
бесплатно
Музыкальные миры CJ andy - моя авторская музыка mp3
бесплатно
Уроки Photoshop free (Свободно распространяемые)
бесплатно
megainformatic cms express - Ваш Персональный Сайт на php + my sql
400 руб.

Бесплатные Уроки Photoshop free, Бесплатные Уроки по программированию на delphi directx - Как создать игру Ну, Погоди!, Бесплатная Авторская музыка в формате mp3 - Музыкальные Миры, Платно распространяемый продукт megainformatic cms express - система для быстрого создания Вашего сайта на php + my sql.

 
     
 
 
 
     
 

Проекты игр, уроки

Игра Веселый Буквоежка
450 руб.
Уроки Delphi Directx 8.1
бесплатно
Моделируем девушку в 3d studio max
бесплатно
Уроки музыки в FL Studio
бесплатно

Игра Веселый Буквоежка, уроки delphi directx 8.1 для начинающих (описываются основы 3d игр), моделируем девушку в 3d studio max, уроки музыки - пишем музыку в Fruity Loops Studio

 
     
 
 
 
     
     
     
 
megainformatic cms express files

Быстрая и Компактная Система Управления Вашим Сайтом - megainformatic cms express files

megainformatic cms express files - это простое, быстрое и очень компактное решение для создания первого вашего сайта. НЕ ИСПОЛЬЗУЕТ базы данных mysql. Вместо этого используются файловые базы данных. Поэтому Вы можете использовать систему даже на хостинге с поддержкой php, но без поддержки баз данных my sql.

Очень проста в установке - достаточно вам скопировать все файлы на ваш хостинг и сайт готов к работе !!!

В комплект входят 3 готовых шаблона, модули поиска и карты сайта, а также статьи по основам создания сайта.

Подробнее...

 
 

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


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


Something: Unexplained 2 captive of desires / Нечто: Необъяснимое 2 в плену желаний
Костя Коробкин Комикс Коллекционное издание - 6 комиксов, 81 страница, 220 mp3 треков
Quidget 2 игра в браузере - русская версия, english версия
megainformatic Размещение баннерной рекламы у нас
megainformatic live chat
Начать беседу
X
Время загрузки: 0,0772