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

Вниз

Город...   Найти похожие ветки 

 
K.o.Z ©   (2003-08-26 15:32) [0]

Уважаемые мастера, как мне лучше всего хранить карту города?(такого же большого, как в Мафии)


 
NailMan ©   (2003-08-26 16:15) [1]

Ну как в мафии я не знаю, но могу предложить такую схему:

Так как город структура довольно однообразная по элементам, то сам террейн можно хранить в виде неких блоков-модулей. Скажем по кварталам. Квартал - это матрица, в поля которой можно заполнить каким-либо покрытием: асфальтом, бетоном(фундамент дома), зеленью и т.д. Скажем пример:

______      _____________
     |    |
Б    |  А | Т
     |    |
______|    |_____________

Естесственно сам террейн тут будет на картах высот или как иначе, но основу задает 2мерная матрица в которой обозначен тип поверхности. 3 измерение задают высоты.

Ну а дома просто ставишь статичным объектом на бетонные элементы мартицы.

Можно динамически подгружать следующий квартал - экономия места.

Типа так.


 
lokid7 ©   (2003-08-26 19:45) [2]

Я кстати делаю также, как и NailMan + частичный вывод на экран + динамическая загрузка
Вот.


 
K.o.Z ©   (2003-08-26 21:21) [3]

очень конструктивное предложение ...

const
 quadsize = 128;
 quadkol  = 5;
type
 SSector = record
   height: glfloat;
   landscape: glbyte;
 end;
 SQuad = record
   name: PChar;
   field: array [0..quadsize-1, 0..quadsize-1] of SSector;
 end;
 SMap = array [0..quadkol-1] of SQuad;

 а потом SMap просто будет хран. в файле.... думаю такой вид будет приемлем
 Подскажите где взять текстуры ландшафта??

P.S.
 А где вот хранить всякие фонари, мусорные ящики и тлф. будки, они ж не будут занимать целую ячейку? ;)


 
NailMan ©   (2003-08-27 13:42) [4]

Да потырь из той же самой мафии или ГТА. Заодно приобретешь опыт влома ресурсов(если они не в доступном виде).

Насчет мелких предметов навроде фонарей, баков и т.д есть такая мысль:
Задаешь 2Д координаты объекта в нужной точке.
Когда у тебя сгенерируется сетка террейна на основе карты, то находишь точку пересечения сетки(точнее соотв треугольника) и лучом исходящий из положения фонаря на 2Д и направленный вертикально(вертикальная координата на 2Д ессно =0). Получается полноценные 3Д координаты. Туда и помещаешь фонарь(его основание).


 
mrAld ©   (2003-08-28 12:42) [5]

Карту лучше хранить в виде графов или деревьев. По крайней мере структура получается удобней в использовании.


 
K .o.Z   (2003-08-29 01:32) [6]

Не нашел никаких материалов о графах, будьте добры - дайте ссылку


 
mrAld ©   (2003-08-29 12:45) [7]

Незнаю насчёт ссылок - мы это проходили на втором курсе :)



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

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

Наверх




Память: 0.48 MB
Время: 0.034 c
1-1078393062
Бывающий
2004-03-04 12:37
2004.03.28
Как средствами ShellExecute распечатать документ?


14-1078222874
Zergling
2004-03-02 13:21
2004.03.28
Чудило-продавцы :)


7-1071935855
саша
2003-12-20 18:57
2004.03.28
осциллограф на базе компа


8-1069085167
g-l-u-k
2003-11-17 19:06
2004.03.28
ListBox DoubleClick


14-1077965066
Макын
2004-02-28 13:44
2004.03.28
Visual C++