Delphi World - PowerDraw вместе с DelphiX
Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
PowerDraw вместе с DelphiX

Автор: Daddy
WEB-сайт: http://daddy.mirgames.ru

Так как у PD нет компонентов ни для работы со звуком ни спрайтового движка, то я советую вам использовать эти компоненты из набора DelphiX! Если со звуком ничего не поменялось, то вот со спрайтовым движком есть проблемы. Дабы вы не мучались и не бились в истерике при разборе кода связанного с движком товарисч Spose уже все исправил. Вам только необходимо поместить на форму DxSpriteEngine из компонентов DelphiX и сбросить в каталог с игрой файл DxSprites.pas из архива, ссылку на который вы сможете найти в конце статьи. К сожалению некоторых, я убрал из движка кучу наворотов (вращающиеся спрайты и фоновые спрайты) хотя при желании вы все легко сможете восстановить. Если не сможете, то напишите нам на форум и я сделаю это сам. Плюс к нему прилагается файл Proced.pas. Он содержит нормальные процедуры загрузки графических файлов формата BMP (не менее 16битных!!! И желательно чтобы ширина и длина изображения была кратна 16) и последующего вывода их на экран. Ещё в архиве находится файл agfunit - исправленая Spos'ом

версия оригинального файла. Добавлена загрузка из потока (Tmemorystream) и исправлена пара глюков. Его тоже желательно ТОЛЬКО ПОДКЛАДЫВАТЬ в каталог с программой перед компиляцией!

Вот они:

  • LoadGrafix(pd:TPowerDraw;name:string);
    pd - ваш PowerDraw. name - имя каталога в котором лежат картинки которые будут загружаться.
    ВНИМАНИЕ!!! У каждой картинки должен быть файл расширения txt с тем же именем со следующим содержанием (по строкам):
    1. Ширина паттерна (кадра)
    2. Высота паттерна
    3. Ширина всей картинки
    4. Высота всей картинки
    5. Цвет прозрачности (у меня почему-то работает только clBlack)

    Если же все файлы однотипны (одинаковый размер и прочее) то создайте файл all.txt и заполните его соответствующими данными. Несмотря на это, если у какого-то файла будет свой txt, его хар-ки будут грузится именно из него.

  • FindImage(name:string):TagfImage;
    Находит картинку по ее имени (нужна для приведенных ниже процедур).

  • ImDraw(PowerDraw;findimage(ИМЯ КАРТИНКИ);x,y,НОМЕР ПАТТЕРНА,effect:integer);
    Рисует нужную паттерн картинки (ИМЯ КАРТИНКИ) на выбраный PowerDraw, по координатам, с эффектами (выберите любой):
    1. effectNone - просто выводит картинку (без прозрачности)
    2. effectSrcAlpha - выводит картинку с прозрачным Transparent Color (который был указан в текстовом файле)
    3. effectSrcColor - выводит картинку прозрачной, так что все темные областе наней становятся более прозрачными нежели светлые - это идеально для рисования огня и дыма!
    4. effectMultiply - "вливает" картинку в фон
    5. effectInvMultiply - меняет цвета у картинки и "вливает" ее в фон
    6. effectNegative - рисует негатив картинки

Остальные эффекты я перечислять не стал, так как они используются другими процедурами (написаными ниже).

  • ImFlipDraw(pd:TPowerDraw;name:Tagfimage;x,y,patternnumber,effect:integer); Рисует картинку отражая ее по горизонтали!
  • ImStrDraw(pd:TPowerDraw;name:Tagfimage;x,y,width,height,patternnumber,effect:integer); overload; Растягивает или Стягивает картику.
  • ImStrDraw(pd:TPowerDraw;name:Tagfimage;x,y,width,height,patternnumber,alpha:integer;ifisalpha:boolean); overload; Растягивает или Стягивает картику + прозрачность (alpha) всей картинки; Последний boolean ни на что не влияет, он просто нужен для различения процедур.
  • ImRtDraw(pd:TPowerDraw;name:Tagfimage;x,y,patternnumber,angle,effect:integer); Вращает картинку. Под углом angle (0-360).
  • ImDrawSh(pd:TPowerDraw;name:Tagfimage;x,y,patternnumber,angle,alpha:integer); Типа тень от объекта... нужно дорабатывать.
  • ImDrawAlpha(pd:TPowerDraw;name:Tagfimage;x,y,patternnumber,alpha:integer); Рисует всю картинку с прозрачностью alpha.
  • Dnt(pf:TpowerFont;text:string;x,y,color,center:integer); Выводит текст (text) шрифтом из PowerFont, с изменяемыми координатами и выбираемым цветом. В случае Center = 1 текст будеть центрироваться по координатам (на указаных координатах будет центр рисуемой строки, это нужно для рисования Caption'ов на кнопках и прочего), в любом другом случае текст будет рисоваться от координат.
  • printscreen(Форма с PowerDraw); В скобках укажите форму и в каталоге с игрой вы найдете скриншот. (Они никогда не пишутся поверх старых, а всегда создают новые с другими номерами).

Вот и все. Качайте архив с файлами, упоминаемыми в статье.

Проект Delphi World © Выпуск 2002 - 2017
Автор проекта: Эксклюзивные курсы программирования