Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2004.03.28;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.038 c
6-1073764706
Delphi5.01
2004-01-10 22:58
2004.03.28
IdHTTP.Post ...


1-1078957801
Armen
2004-03-11 01:30
2004.03.28
Access Violation


3-1077526437
Alexei Sviridov
2004-02-23 11:53
2004.03.28
Interbase DB backup


6-1074264120
csr
2004-01-16 17:42
2004.03.28
Проверка SOCKSов


3-1077362832
Крутыш
2004-02-21 14:27
2004.03.28
Интересное торможение в гриде.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский