http://sulfurzona.ru/
News
Service
Magazine
Software (Battle City Game, Wallpaper manager, Superpad, VG-NOW, Puzzle Game, Netler Internet Browser, ..)
Wing-Thunder Game (fly simulator)
Dune Game (Dune III, Dune IV, Cheats, Forum, ..)
Games free
Turbo Pascal (Assembler, Docs, Sources, Debbugers, ..)
Books (Docs for developers)
Guest book
Компьютерная диагностика двигателя автомобиля (адаптер К-линии)Компьютерная диагностика двигателя автомобиля (адаптер К-линии)
 
 
Скачать игру Крыло-Гром (Wing-Thunder) бесплатно
 
 
 

Компоненты DelphiX для Delphi (DelphiX for Delphi) для создания игр

 
Автор: Владислав Демьянишин
 
Компоненты DelphiX для Delphi (DelphiX for Delphi)DelphiX – это целый пакет классов и визуальных и невизуальных компонентов, позволяющих в Delphi-приложениях задействовать возможности стандартного для Windows DirectX, а именно DirectDraw, Direct3D, DirectSound, DicrectPlay и так далее.
 
Собственно, все это может понадобиться, если вы программист и вознамерились заняться созданием компьютерных игр. И не стоит верить всяким статейкам об этом пакете, приуменьшающим его возможности. Поверьте мне, как автору ремейка на известную RTS Dune 2, что данный пакет компонентов вполне самодостаточен, необходимо лишь достаточное время и упорство для реализации поставленной задачи. Результат вы можете увидеть в виде моей игры Dune VI.
 
Автор библиотеки DelphiX – японский программист Hiroyuki Hori. Увы, это все, что я о нем знаю. Но если б мог с ним связаться, то поблагодарил бы его за проделанную качественную работу.
 

Основные компоненты DelphiX

 
TDXDraw – визуальный компонент создает поверхность отображения графики. По сути, это экран создаваемой игры. Дает доступ к поверхностям 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 для Delphi (DelphiX for Delphi)
 
В DelphiX есть самостоятельные компоненты, а есть вспомогательные, вот, например, DXSpriteEngine не может работать без DXDraw (где он будет отображать все действия, происходящие в сцене). Вот таблица зависимых и вспомогательных:
 
Компоненты DelphiX для Delphi (DelphiX for Delphi) 
 

Что находится в архиве пакета

 
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 на английском, но очень интуитивно понятно и наглядно составлен. Много простых, но понятных примеров, иллюстрирующих работу компонентов. С освоением пакета компонентов не возникнет никаких сложностей.
 
Скачать DelphiX (4 Mb)
 
 

Перспективность

 
Данные компоненты весьма стабильны в работе и прекрасно сочетаются с 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
 
© Владислав Демьянишин
 
 
На нашем сайте можно не только бесплатно скачать игры, но и документацию и книги по программированию на MIDLetPascal, Turbo Pascal 6, Turbo Pascal 7, Borland Pascal, по программированию устройств Sound Blaster, Adlib, VESA BIOS, справочник Norton Guide и много другой полезной информации для программистов, включая примеры решения реальных задач по созданию резидентных программ.
 

Журнал > Программирование > Компоненты DelphiX для Delphi (DelphiX for Delphi) для создания игр
 
 
 
 
 
 
На главную страницу На предыдущую страницу На начало страницы