Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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
6-1093554783
Dmitry
2004-08-27 01:13
2004.11.07
Indy - Скопировать TidMessage в другой TidMessage без потерь


1-1098688968
MadSnake
2004-10-25 11:22
2004.11.07
запуск другого приложения из service-приложения


3-1097244849
serg128
2004-10-08 18:14
2004.11.07
Как определить тонкому клиенту наличие связи с сервером приложени


14-1098294434
Vasya.ru
2004-10-20 21:47
2004.11.07
Программа поиска мата в 3 хода (шахматы)


1-1098370034
UserUserov
2004-10-21 18:47
2004.11.07
Записать атрибуты файла





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский