Форум: "Игры";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
ВнизDelphaX Найти похожие ветки
← →
cyclope (#-) (2002-10-30 04:44) [0]Всем private, кульные перцы местного форума! Не откажите в помощи милы человеки...
В одном PictureCollectionItem`е(PCI) есть туева хуча террэйновых ячеек, но чтобы не прорисовывать каждый frame все по ячейке (это ж гемор какой :~( ), я хочу сбагрить нужный мне набор, содержащий изображение текущей карты в отдельный PCI. Рез-тат: у дисплея мертвые с косами стоят, черным-черно, и тишина... (*-). Как все-таки наиболее быстро перенести graph`у с одного PCI на другой?
← →
Mirovodin (2002-10-30 11:00) [1]Программирование это вообще "гемор какой" :) Так что лучше этим вообще не заниматься...
По поводу вопроса, cyclope (#-) ты считать совсем не умеешь.
Смотри: есть карта 128x128 ячеек. размер спрайта 32 pix. Размер карты - 128x32=4096 pix. Это просто background карты - размер 4096x4096x24 bit ~50 МБ. Не слобо так. Загружается такое чудо хрен знает сколько, а уж про скроллинг я и не говорю. Так ни кто не делает. Про создание карт читай статьи на http://delphigfx.mastak.ru/2d.htm
← →
Владимир Васильев (2002-10-30 12:15) [2]Идея не нова и эксплуптируется довольно активно.
Есть несколько узких моментов : Вся карта "одномоментно", так сказать, тебе не нужна - если у тебя , конечно не 170" монитор :).
Можно, напрямую считывать область чуть большую, чем область вывода напрямую из большого файла на HDD. Тогда можно получить плавный скроллинг в пределах загруженной картинки. При достижении границ - подгружать новую область опять с диска. В момент подгрузки новой области будут явно видимые тормоза. Тут надо подумать, как и когда проводить подгрузку новой области.
← →
Mirovodin (2002-10-30 16:47) [3]2 Владимир Васильев ©
Я кстати по этому поводу то же думал, т.е. построение карт именно не ячейками, а рисовать ее всю. Метод похоже был реализован в Ice Wing (булдер гейтс). Я выдергивал из ресурсных файлов огромные карты и отдельно карты проходимости поверхностей. Можно попробовать реализовать, правда сложно будет сделать именно ПЛАВНЫЙ переход между областями. Лучше всего грузить сразу все соседние экраны:
000
0X0
000
x - наше место положение.
Кстати если разделить эти экраны на равные участки, например составит всю карту из 800x600 кубиков и пронуменрвать их - переход к ним будет практически мгновенен - Seek по ресурсному файлу.
← →
cyclope (#-) (2002-10-31 10:22) [4]Mirovodin ©
Тебе, Дима, вообще отдельный поклон. За твои замечательные статьи, а также другие подвиги перед Отечеством по пути освоения "ОЙ КАКОГО гемора" (@-). Кстати, считать я умею, просто САМЫЕ большие карты у меня 640х480х4(экрана)х2(байта)/1024(B_per_Kb)~ 2400 Kb. Вот и усе, а ты боялась, только юбочка помялась... (ничего личного, так, к месту пришлось ;) ). И на то, что это лишь бэк тоже есть ответ: спрайты будут накладываться поодиночке, сверху, штабелями... Уболтал, подробности ищи на мыле mirovodin@delphigfx.mastak.ru :)
К остальным
И все же, дамы и господа, будьте добры, ответьте на исходный вопрос, plea.ea..ea..ea...ea....se!!!
← →
Mirovodin (2002-10-31 23:36) [5]cyclope
Конечно если использовать маленькие карты, проблем нет храни все в памяти. Как их состряпать из массива спрайтов : 2-мя вложенными циклами":
Перебираем весь массив карты:
for I:=0 to X do
for J:=0 to y do
Смещение вычисляем как
dx=I*SpriteSize - размер спрайта по X и Y
dy=dx
и потом вызываем какой ни будь DRAW со смещением dx, dy. (BitBlt, BltFast и т.д. )
← →
cyclope (#-) (2002-11-06 05:20) [6]Позвольте еще, еще, и все же еще несколько уточнить вопрос...
Как наиболее быстро перенести graph`у с одного PictureCollectionItem`а на другой?
← →
Mirovodin (2002-11-06 10:11) [7]Самый простой и быстрый способ - копирование памяти. Как вариация различные BLTXXX
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c