Программирование 3D-игр в DirectX на Delphi
 
         
    [Главная] [Новости] [Статьи] [Игры] [Проекты] [Автор]  
         
    [Архив новостей]    
         
  [Форум] на форуме можно задать вопрос, посмотреть ответы на часто задаваемые вопросы  
         
  Основы 3D-программирования DirectX9 в Delphi 2006: теоретические и практические основы создания игр.  
     
     
Здравствуйте! Вы попали на информационно-образовательный сайт посвященный информатике, информационным технологиям и компьютерным играм. Подробнее о целях и задачах сайта в разделе Главная. [English version of this page here...]
 
[Базовые уроки по DirectX] [Основы DirectMusic на Delphi] [Основы DirectInput8 на Delphi] [Основы DirectSound8 на Delphi]
[Разработка компьютерной игры] [Пример игры Donuts3D] [Delphi DirectX]
 
Что такое Delphi DirectX ?
     
  [назад] [далее] [к содержанию]  
     
  16/05/2009-19/05/2009  
     
  Создаем класс для работы с мульти-анимациями на основе примера MultiAnimation из DirectX SDK 9  
     
 

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

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

 
     
 

Новый проект должен быть создан как WinAPI

Для этого в Delphi 7 нужно создать новый проект и исключить из него использование TForm, вместо этого нужно будет добавить пустой модуль и писать код в нём.

В Delphi 2006 нужно будет поступить аналогично - выбрать новый проект вида VCL Forms Application - Delphi for Win32, затем исключить модуль формы и убрать весь код использующий формы и класс TApplication, вместо этого добавить новый модуль не использующий формы.

Иными словами Вам нужно будет первоначально подготовить новый шаблон будущего D3D-приложения.

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

Суть создания такого шаблона очень проста. Можно взять любой из примеров внутри папки Direct3D архива delphi_dx9.rar и удалить весь код, кроме кода создания самого d3d-приложения. К счастью даже этого делать не придется. В данном архиве внутри папки Custom вы обнаружите 3 готовых шаблона: для использования DirectX9 совместно с VCL-формами, для использования DirectX9 без VCL-форм (WinAPI) и для использования VCL-форм с переключением в полноэкранный режим.

 
     
  Таким образом взяв за основу шаблон для WinAPI и удалив весь не относящийся к делу код Вы можете создать свой собственный шаблон, который затем и использовать для решения нашей задачи - написания класса TMultiAnim3DModel  
     
 

Изучение примера MultiAnimation на предмет использования анимации в среде DX8 я уже занимался, на этот счет есть несколько рабочих статей-заметок, кроме того была попытка написания класса TAnimatedModel для использования анимированных моделей в DX8.

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

 
     
 

Требования к классу TAnimatedModel

- Загрузка анимированных моделей в текстовом, двоичном и двоичном сжатом формате X;

- Поддержка любого количества анимационных наборов и любых имен (снятие ограничений, которые накладывает пример MultiAnimation);

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

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

 
     
 

Проведя небольшую работу я создал в первом приближении класс TAnimatedModel, который вынесен в отдельный модуль MultiAnimatedModel.pas

Пока класс полный аналог того, что имеет место в примере MultiAnimation, за тем лишь исключением, что он работает теперь как самостоятельный объект.

Модифицированный Шаблон TemplateWinAPI который я использовал для написания приложения по разработке и тестированию класса TAnimatedModel

Исходный код приложения TMultiAnim3DModel

Исходный код приложения TMultiAnim3DModel по созданию и тестированию класса TAnimatedModel - включает использование DX9_DIUtil.pas для управления приложением от DirectInput8

Основное внимание следует обратить на то, как используется модуль DX9_DIUtil и класс TDXInput совместно с классом CMyD3DApplication. Для их связи используется промежуточное звено, названное TD3DAbstractApp

В приложении TestMultiAnim3DModelClass (Исходный код приложения TMultiAnim3DModel) класс TAnimatedModel пока еще не реализует ни одно из описанных требований. Это пока еще начальная заготовка, которую мы будем улучшать далее, последовательно изучая все модули, касающиеся использования мультианимации в Delphi DirectX 9

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

 

Обновления и новости о развитии Delphi DirectX проекта
смотри на сайтах:

http://www.megainformaticsite.pochta.ru

http://www.megainformatic.boom.ru

http://www.megainformatic.narod.ru

 

   
       
     
 

по всем вопросам пишите на megainformatic@mail.ru или оставьте сообщение на форуме

 
     
   Обмен ссылками  
     
     
             
 
 
         
(с) МЕГА ИНФОРМАТИК 2006-2009

 

Hosted by uCoz