Форум: "Игры";
Текущий архив: 2004.11.07;
Скачать: [xml.tar.bz2];
ВнизПара вопросов по 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.03 c