Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.07;
Скачать: CL | DM;

Вниз

Пара вопросов по DelphiX   Найти похожие ветки 

 
DanilinSA   (2004-05-24 14:14) [0]

Помогите решить пару вопросов:
1) В игровом проекте много ресурсов в виде картинок. Хранить в виде файлов - неудобно, хранить в DXImageList - страшно растет размер EXE файла. Так-как планируеться частая смена версий во время тестирования то не хочеться заставлять людей гонять неизменную графику по Инету.
Вопрос: Как хранить (если это можно) всю графику в DLL или отдельным файле ресурсов и при загрузке перегонять её в DXImageList?
2) Как из картинке в DXImageList вырезать фрагмент и нарисовать его на DXDraw.Surface (обычно пользуюсь Draw, но он копирует всю картинку). Это не периодический фрагмент в виде набора кадров!


 
DanilinSA   (2004-05-24 16:52) [1]

Второй вопрос снимаеттся. Разобрался. Использовал конструкцию типа
MainForm.DXDraw.Surface.Draw(510, 404, KlastRound,  MainForm.DXDialog.Items.Find("Rowgrid").PatternSurfaces[0], false);


 
Thor ©   (2004-05-24 17:16) [2]


> DanilinSA   (24.05.04 14:14)  

посмотри на DelphiGFX примеры хранения графики в архивах.
инфы по этой теме в нете - туева хуча.
поищи!


 
kas-t   (2004-05-24 17:27) [3]

1) А ты не пробывал делать так:

DXImageList.LoadFromFile("graphicsdata.dxg");
DXImageList.SaveToFile("graphicsdata.dxg");

Можно написать небольшой редактор редактирующий библиотеки картинок.

2) Тоже велосипед... В свойствах картинки в библиотеке DXImageList ставь PattenHeight и PattenWidth - высота и размер необходимого куска. А дальше эти куски получай так: DXImageList.items.Find("sprite1").Draw(DXDraw1.surface,x,y,ani); где Ani - это номер нужного тебе куска.


 
DanilinSA   (2004-05-26 09:45) [4]

для kas-t:
1) Собственно к этому я и склоняюсь. При инициализации игры она будет извлекать DXG файл из ZIP архива и грузить его в DXImageList.
2) Мне не удалось резать картинку "на ходу" изменяя PattenHeight и PattenWidth !!! Причина неизвестна, но возможно нарезна происходит на этапе компиляции и при работе программы невозможна.
Я писал "Это не периодический фрагмент в виде набора кадров!" У меня в один BMP свалены иконки 16*16, 32*32 , 16*21 и т.д.  Поэтому проще воспользоваться методами Surface для копирования фрагмента.


 
WinPopka   (2004-05-26 16:35) [5]

DanilinSA
А не поделишься знанием?: как из zip`a брать бампшки и грузить в dximagelist?


 
Ork   (2004-05-26 18:25) [6]

редактор DXG файлов грузи с http://daddy.mirgames.ru


 
WinPopka   (2004-05-26 19:18) [7]

это ты мне? какой такой редактор?


 
DanilinSA   (2004-05-27 10:05) [8]

для WinPopka:
1) На этапе отладки программы загоняешь все BMP в dximagelist.
2) После завершения отладки нажимаешь на dximagelist правой кнопкой и даешь команду: "Save...". Сохраняешь содержимое в DXG файле.
3) Пакуешь все DXG в ZIP формат.
4) Подключаешь к программе компонент или модуль для распаковки ZIP файлов.
5) В нужный момент в проге ( при инициализации или нажатии какой - либо кнопки):
 а) Извлекаешь DXG из архива.
 б) dximagelist.Items.LoadFromFile(...);
 в) затираешь уже ненужный DXG

усё


 
WinPopka   (2004-05-29 01:40) [9]

Хмм..а модуля такого у вас нету ?


 
ork   (2004-05-29 11:51) [10]

WinPopka: нет это я DanilinSA"у, специальным редактором работать проще чем имейджлистом.


 
Omar2002   (2004-07-05 13:50) [11]

Когда картинок слишком много вобще советую разбить все на несколько DXG файлов, ну и при выпуске патчей и дополнений это кстати говоря будет удобно - добавил например парочку новых юнитов - заменил один DXG файл и бинарник. А вот еще одно удобное решение проблемы - если у тебя очень много прозрачных частей на спрайтах, то весь DXG файл можно одной программкой ужать - она выкидывает эти самые области, тем самым уменьшая объем файла, правда не всегда хорошо этот процесс закончивается, иногда теряются некоторые области или с цветами глюки, но зато если все сработает - получишь вполне хороший результат. Я в одном из своих проектов ужал DXGшник в полтора раза, а это примерно 300Кб весу.



Страницы: 1 вся ветка

Текущий архив: 2004.11.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
1-1098773453
wild_arg
2004-10-26 10:50
2004.11.07
оператор With


1-1098214540
Tank Abot
2004-10-19 23:35
2004.11.07
sortirovka massivov metodom Shella


14-1097824174
Sun bittern
2004-10-15 11:09
2004.11.07
Бр-р-р-р-р. Очень интересный глюк. Так и не определил причину :(


14-1097935328
negrila
2004-10-16 18:02
2004.11.07
как обрабатывать линии?


14-1097850257
ОлегЪ
2004-10-15 18:24
2004.11.07
Для тех, кто его видел!