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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.018 c
14-19765
GDBoy
2003-03-19 21:44
2003.04.07
Помогите с треем....


3-19502
yuniki
2003-03-19 12:51
2003.04.07
Как конвертировать таблицу из одной кодировки в другую


3-19503
Behemoth
2003-03-20 10:26
2003.04.07
Ошибка при вызове ADOQuery.ExecSQL...


1-19683
antoniz
2003-03-26 09:12
2003.04.07
Есть файл проекта, как из командной строки забилдить его


3-19427
ArtemB
2003-03-18 12:28
2003.04.07
Работа с базами