![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
массив спрайтов [Delphi, Windows]
бобомен © (2004-08-25 15:43:00)Как организовать массив с картинками и вывести в директИКс?, в DelphiX понятно как, там есть контейнер dximagelist, туда закинул графику, а потом в цикле смотришь если клетка такая то туда такой спрайт кидаем (dximagelist[5]. В чистом директе нужно как то прописать все, только одни ошибки, разные типы и прочее, не могу правильно написать все...
бобомен (2004-08-26 11:23:00) [1]Седьмой Псих закинь на disconnected@nm.ru
Просто проблема в том что в девятом директе графика это текстура, может в этом будет проблема.
П7 (2004-08-26 10:01:00) [2]Да какая разница, есть сурвейся или нету. Напиши класс спрайта. Одного, который можно инициализировать, загрузить туда графику и вывести на экран. Далее напиши класс управления динамическим массивом таких спрайтов. Вот и всё. Чтобы понять принцып, не обязательно вдаваться в средство реализации. Я класс спрайтов делал свой и для DelphiX надстройки P7Gfx и для нового движка на OpenGL. Классы почти одинаковые... Так что можешь скачать надстройку с моего сайта ( http://tzlab.amillo.net-тормозит) и посмотреть, как там реализован класс спрайтов и класс управления спрайтами. Думаю сможешь разобраться в принципе и сделать свой класс или изменить под свои нужды.
Если сайт будет тупить - давай мыло, я тебе скину двигло.
бобомен (2004-08-26 09:31:00) [3]То что тут написано это под директдро, у меня щас под директ3д пишеться, мнебы понять как создать массив с картинками и из него заполнить поверхность. В директ 9 нету сурфайсов, там просто устройство FDevice3D:IDirect3DDevice; что то типа, нету под рукой делфи щас.
ПсихЪ_копия (2004-08-25 22:18:00) [4]Теперь я ничего не понимаю. Задай вопрос покорректней...
бобомен (2004-08-25 19:33:00) [5]TMySprite = class
private
pDX : PDirectX; // Указатель на объект DirectX ;
// В описании типов: PDirectX = ^DirectX;
// или как-то так
X, Y : integer;
Width, Height : integer;
Surf : DirectDrawSurface7; // Или как там он называется,
// давно под DD не программил
constructor Create( dx : PDirectX );
procedure Draw( X, Y : integer );
end;
TMySpriteList = class
Items : array of TMySprite;
Count : integer;
// и т.д.
end;
----------------
меня как раз интересует и так далее, а эту шляпу я и сам давно написал, вот дальше уже не понятная ситуация
бобомен (2004-08-25 16:59:00) [6]я кстати делаю не под дд а под Direct3D, девятый директ =)
KA_ (2004-08-25 16:57:00) [7]>П7 (25.08.04 16:51) [1]
Я бы сделал TMySpriteList наследником TList (или вообще использовал TObjectList) для унификации. А свой класс списка делал бы если очень не хочется подключать Classes.
П7 (2004-08-25 16:51:00) [8]Класс одного спрайта (префиксов в объектах DirectX не пишу, т.к. в разных модулях они могут быть разными, да и не помню уже):
TMySprite = class
private
pDX : PDirectX; // Указатель на объект DirectX ;
// В описании типов: PDirectX = ^DirectX;
// или как-то так
X, Y : integer;
Width, Height : integer;
Surf : DirectDrawSurface7; // Или как там он называется,
// давно под DD не программил
constructor Create( dx : PDirectX );
procedure Draw( X, Y : integer );
end;
TMySpriteList = class
Items : array of TMySprite;
Count : integer;
// и т.д.
end;