|
#1
|
|||
|
|||
DelphiX
Приветствую всех кто здесь есть.
Просмотрел здесь несколько тем и нашёл очень мало информации по DelphiX. По сути только пару ссылок на литературу, которую я уже всю перечитал и несколько примеров. Я понимаю что DelphiX это упрощённый и далеко не идеальный вариант работы с DirectX. Но его изучение и использование прощще в разы чем самого DirectX-а. Я с графикой раньше не работал, DirectX для меня тёмный лес... Пробовал изучать, но чувствую пока не куплю умную книгу это бесполезно, а в сети или в электронном виде информация весьма скудная, а работающих примеров я не видел (один раз пришлось из 3-х неработающих примеров одного и того же действия, описанного с некоторыми различиями, собирать один работающий, а все го то ерунда какая то была, типа закраски экрана цветом). И решил всё таки пока остановиться на DelphiX, в нём меня всё устраивает. Проблемы возникают, но решаются максимум в течении суток, а обычно за пол часа-час. Так вот, к чему это я... Если есть здесь люди, которые достаточно много работали с этим компонентом, то прошу у них консультации вот по каким вопросам: 1) Где то в описании DelphiX читал что он работает только с Delphi6. Но я установил его в 7-м и вроде всё нормально. Не всплывут ли проблемы позже? 2) Есть в DelphiX такая процедура вывода спрайтов как DrawAlpha. Так вот, если использовать её для какого то одного объекта класса TImageSprite то всё нормально, но если таких объектов 2 и более (в моём примере их 20) то начинает всё жутко тормозить. Вот как примерно выглядит мой код: Код:
TNew = class(TImageSprite) protected procedure DoMove(MoveCount: Integer); override; procedure DoDraw; override; public destructor Destroy; override; end; procedure TNew.DoDraw; begin image.DrawAlpha(Form1.DXDraw1.Surface,bounds(ceil(x),ceil(y),image.Width,image.Height),0,50) end; ... var New: array[1..20] of TNew; ... for temp_int_1 := 1 to 20 do begin New[temp_int_1] := TNew.Create(DXSpriteEngine1.Engine); with New[temp_int_1] do begin pixelCheck := true; Image := Form1.TDXImageList1.Items[0]; x := Random(1000); y := Random(600); z := 1; width := image.Width; height := image.Height; end; end; ... 3) Знаю что есть более свежая версия DelphiX. UnDelphiX по моему зовётся. Но нигде пока не встречал. Кто нибудь может дать ссылку где его поискать? И желательно список того что там было улучшено/изменено. Возможно что и проблема из п.2 там устранена. Заранее спасибо. Aristarh Dark: не забываем о тэгах!!! Последний раз редактировалось Амон, 09.11.2008 в 12:07. |
#3
|
|||
|
|||
Цитата:
А в чём его преимущество по сравнению с DelphiX? Нашёл упоминание о функциях вывода blt и bltfast. Написано что работают на порядок быстрее. Кто нибудь может рассказать как они работают поподробнее? И как вообще правильно надо работать с поверхностями? |