|
| ||||||||||||||||||
Компоненты DelphiX для Delphi (DelphiX for Delphi) для создания игрАвтор: Владислав Демьянишин
DelphiX – это целый пакет классов и визуальных и невизуальных компонентов, позволяющих в Delphi-приложениях задействовать возможности стандартного для Windows DirectX, а именно DirectDraw, Direct3D, DirectSound, DicrectPlay и так далее.
Собственно, все это может понадобиться, если вы программист и вознамерились заняться созданием компьютерных игр. И не стоит верить всяким статейкам об этом пакете, приуменьшающим его возможности. Поверьте мне, как автору ремейка на известную RTS Dune 2, что данный пакет компонентов вполне самодостаточен, необходимо лишь достаточное время и упорство для реализации поставленной задачи. Результат вы можете увидеть в виде моей игры Dune VI.
Автор библиотеки DelphiX – японский программист Hiroyuki Hori. Увы, это все, что я о нем знаю. Но если б мог с ним связаться, то поблагодарил бы его за проделанную качественную работу.
Основные компоненты DelphiXTDXDraw – визуальный компонент создает поверхность отображения графики. По сути, это экран создаваемой игры. Дает доступ к поверхностям DirectDraw для рисования графических элементов с применением аппаратного ускорения. Поддерживает все доступные через драйвер видеорежимы, а также оконный и полноэкранный режим.
TDXDib - невизуальный компонент позволяет хранить DIB (Device Independent Bitmap) для ускорения вывода графических элементов, в противовес обычному Tbitmap, хотя можно использовать и TBitmap.
TDXImageList - позволяет хранить серии DIB, Jpg, bmp-файлов, что очень удобно для программ, содержащих спрайты и тайтлы. Позволяет загружать DIB`ы с диска во время выполнения программы. По сути, данный невизуальный компонент позволяет применять в игре целые библиотеки графических образов. Библиотеки можно создавать в прилагающемся редакторе IMAGELIB.EXE (смотрите архив IMAGELIB.RAR).
TDXSound - невизуальный компонент проигрыватель звуков в формате Wav. Тут все просто, к тому же доступно воспроизведение одновременно нескольких WAV, причем, каждый со своей громкостью.
TDXWave - «Контейнер» для wav-файла.
TDXWaveList - невизуальный компонент позволяет хранить серии для wav-файлов. То есть с применением данного компонента появляется возможность задействовать в игровых приложениях целые библиотеки звуков в формате WAV. Библиотеку звуков можно создать при помощи прилагающегося редактора WAVELIB.EXE (архив WAVELIB.RAR). Учтите, WAV-файл поддерживается в несжатом формате, то есть в формате «Windows PCM», но никак не в сжатом через MPEG-Layer 3, как, например, «ACM Waveform». Другие форматы не проверял.
TDXInput – невизуальный компонент позволяет использовать DirectInput, т.е. получить доступ к устройствам ввода информации (мышь, клавиатура, джойстик). Весьма эффективный компонент для организации управления посредством различных игровых манипуляторов, таких как Joystick, GamePad, руль и прочих. Имеется поддержка Feedback.
TDXPlay – невизуальный компонент, позволяющий обмениваться информацией между игровыми компьютерами по сети. Позволяет осуществить «игровые комнаты» для игры по сети.
TDXSpriteEngine - спрайтовый движок. Применим для реализации 2D-игр с использованием тайтлов и спрайтов.
TDXTimer - более точный таймер, чем TTimer. То есть, если стандартный для Delphi компонент TTimer не способен реализовать активацию кода чаще и точнее, чем раз в 1/18 секунды, то компонент TDXTimer способен это делать с точностью до 10 мс. При том имеется возможность приостановки таймера на момент неактивности окна игрового приложения. То есть, если окно игры свернуто, то игра будет находиться на паузе – это очень удобно и программисту не нужно прибегать к дополнительным ухищрениям для этого.
TDXPaintBox – визуальный компонент представляет собой альтернативу стандартному компоненту TImage, только DIB-версия.
Так выглядит панель компонентов DelphiX:
В DelphiX есть самостоятельные компоненты, а есть вспомогательные, вот, например, DXSpriteEngine не может работать без DXDraw (где он будет отображать все действия, происходящие в сцене). Вот таблица зависимых и вспомогательных:
Что находится в архиве пакетаDELPHIX6.RAR – содержит исправленные для Delphi 6 исходники
WAVELIB.RAR – редактор библиотек аудиофайлов, установки не требует.
IMAGELIB.RAR – редактор библиотек графических образов, установки не требует.
HHDELP~1.ZIP – архив с исходниками, примерами, документацией и установщиками компонентов DelphiX. Имеется установщик для Delphi3, Delphi 4. Все проверено – работает железно.
UnDelphiX_D7.rar – архив с исходниками, примерами, документацией и установщиками компонентов DelphiX. Имеется установщик для Delphi3, Delphi 4, Delphi 5 и пакет для ручной установки под Delphi 7. Не проверял, потому что нашел в самый последний момент перед публикацией данной статьи.
В архивах имеется Help для Delphi на английском, но очень интуитивно понятно и наглядно составлен. Много простых, но понятных примеров, иллюстрирующих работу компонентов. С освоением пакета компонентов не возникнет никаких сложностей.
ПерспективностьДанные компоненты весьма стабильны в работе и прекрасно сочетаются с OpenGL (что касается сборки для Delphi 3). В качестве примера привожу свой 3D-аниматор, который тоже написан на Delphi 3 с участием некоторых компонентов DelphiX: DirectImput, DXTimer.
Вообще при создании своих игр я использовал Delphi 3, поскольку этот старичок компилирует весьма стабильный код. Ну а скудный набор визуальных компонентов в Delphi 3 для создания игр не играет совершенно никакой роли. Зато отладчик не подкачал и лучше, чем в том же Delphi 5. Правда, для успешной компиляции мне пришлось применить следующий набор директив компиляции:
{$A+,B-,C+,D+,E-,F-,G+,H+,I+,J+,K-,L+,M-,N+,O-,P+,Q+,R+,S-,T-,U+,V+,W+,X+,Y+,Z1}
// Я установил дериктивы O-,Q+,R+,U+,Y+,W+
{MINSTACKSIZE $00004000}
{MAXSTACKSIZE $00400000}
{$IMAGEBASE $00400000}
{$APPTYPE GUI}
Это добавило стабильности в создаваемые мной проекты. По поводу работы Delphi 4+DelphiX ничего сказать не могу, не пробовал. Был не очень удачный опыт применения DelphiX в Delphi 5. 5-й Delphi ну никак не хотел компилировать код компонентов, а когда все же я смог этого от него добиться, программа с тем же исходным кодом получалась нестабильной, что довольно странно. Поэтому от применения Delphi 5 для написания игр мне пришлось отказаться.
Итак, дабы вы могли убедиться в работоспособности пакета DelphiX, в качестве примеров игр, написанных мной на Delphi 3 с применением DelphiX, предлагаю следующие свои программы:
Battle City – аркадная игра, ремейк на одноименную приставочную (Dendy/Nintendo) игру в танчики.
Dune VI – игра, ремейк на RTS Dune 2 от Westwood Studios.
3D Draw – 3D-аниматор на базе Delphi 3, DelphiX и OpenGL.
Примеры на русском языкеНа данном сайте можно подробно почитать о применении, если лень заглянуть в английский Help, идущий к DelphiX
http://www.gamedev.ru/pages/hex/articles/DelphiX
© Владислав Демьянишин
Вы находитесь на официальном сайте Владислава Демьянишина - разработчика игры Dune IV (Dune 4). На нашем сайте Вы можете бесплатно скачать игры Dune IV (Dune 4), Battle City (Танчики с Dendy/Nintendo), читы к играм и многое другое. Также Вы можете скачать бесплатно программы и полезные утилиты. Все программы чистые, т.е. не содержат вирусов и иного вредоносного ПО.
Среди доступных программ есть мобильная читалка книг, менеджер переноса файлов с фото- и видеокамер на компьютер, текстовый редактор, WYSIWYG редактор, 3D аниматор, GIF аниматор, AVI аниматор, пакетный конвертор изображений, редактор электрических схем, программа для скриншотов, диспетчер тем рабочего стола и другие.
На нашем сайте можно не только бесплатно скачать игры, но и документацию и книги по программированию на MIDLetPascal, Turbo Pascal 6, Turbo Pascal 7, Borland Pascal, по программированию устройств Sound Blaster, Adlib, VESA BIOS, справочник Norton Guide и много другой полезной информации для программистов, включая примеры решения реальных задач по созданию резидентных программ.
Журнал > Программирование > Компоненты DelphiX для Delphi (DelphiX for Delphi) для создания игр
| |||||||||||||||||||
|
|||||||||||||||||||