Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > Blitz3D > 3D-программирование

3D-программирование Вопросы, касающиеся программирования 3D мира

Ответ
 
Опции темы
Старый 27.12.2006, 18:06   #1
Chuma
ПроЭктировщик
 
Регистрация: 23.11.2006
Сообщений: 130
Написано 3 полезных сообщений
(для 35 пользователей)
загрузка информации об объекте

Господа, никто не встречал примера загрузки информации об объекте
из внешнего файла с поддерджкой хтмл форматирования?

задача чтобы по Pickentity по объекту - из лежащего в той же папке внешнего ХТМЛ файла (содержащего сразу всю информацию по всем(!) объектам) на экран выводилась информация именно по данному объекту? или просто если можно объясните как это лучше реализовать в Bliz3d?
(Очень не хотелось бы использовать дополнительные dll)
(Offline)
 
Ответить с цитированием
Старый 27.12.2006, 19:41   #2
Diplomat
Дэвелопер
 
Регистрация: 07.09.2005
Сообщений: 1,519
Написано 66 полезных сообщений
(для 164 пользователей)
Re: загрузка информации об объекте

Документ, содержащий простой форматированый по длинне строк текст.

Разумно построчно загрузить его в память при запуске (см.разделы Хелпа по файлам). Затем провести базовую разбивку на информационные блоки.
Для этого, в файле начало информационного блока (т.е. начало данных по каждому новому обьекту) выделяется каким-нибудь редким символом (или группой символов) в начале строки- имени блока. Загружая строку, программа проверяет (Left$()) наличие такого символа, и в случае обнаружения:
1. создает новый элемент типа, или переходит к следующему элементу массива для хранения информации по обьектам.
2. записывает выделенную строку в тип/массив в качестве имени новосозданного блока.
3. записывает все последующие невыделенные строки в качестве собственно текста информации блока
4. если строки в файле заканчиваются- переходит к основной программе
5. если встречает новую выделенную спецсимволом строку- переходит к п.1

В главном цикле программы, встретив обьект, достаточно прочитать его имя (EntityName()) и запустить цикл по всем именам информационных блоков. Встретив совпадение имен- построчно вывести на экран искомую информацию (Text, Locate+Print).

Всё.

Задача не самая тривиальная, но достаточно простая. В своём алгоритме я привел лишь простейший метод. Его усложнение в сторону наращивания скриптов и пр. практически неограничено, однако влечет за собой усложнение структуры и падение производительности.
(Offline)
 
Ответить с цитированием
Старый 28.12.2006, 00:08   #3
Chuma
ПроЭктировщик
 
Регистрация: 23.11.2006
Сообщений: 130
Написано 3 полезных сообщений
(для 35 пользователей)
Печаль Re: загрузка информации об объекте

бня... спасибо большое - но я в ...эээ... шоке. блин ну до чего же народ тут башковитый - я просто физически начинаю чувствовать свое интеллектуальное ничтожество. (просто понятие type для меня увы остается тем самым элементом X, который я вообще не воспринимаю мозгом.) Походу рано я за это взялся...

Ладно - буду читать хелпы, если вопросы будут, поможите? а то у меня предчувстве что БУДУТ.

еще пара вопросов, на сколько я понял грузится сразу все? а если объектов более сотни - да на каждую по 20 строк - сильно на производительность повлияет?
или же сделать сотню файлов и чтоб он грузил исходя из названия? хотя своп думаю будет и задержка перед принтом...
(Offline)
 
Ответить с цитированием
Старый 28.12.2006, 01:33   #4
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Re: загрузка информации об объекте

Diplomat+1
Сообщение от Chuma
Ладно - буду читать хелпы, если вопросы будут, поможите?
а то.
Сообщение от Chuma
еще пара вопросов, на сколько я понял грузится сразу все? а если объектов более сотни - да на каждую по 20 строк - сильно на производительность повлияет?
файл загружается один раз, например на этапе загрузки уровня. +/- 2 сек здесь особой погоды не делают.
Сообщение от Chuma
или же сделать сотню файлов и чтоб он грузил исходя из названия?
нерационально. а если к объекту происходит несколько обращений?, а если к нему каждый такт происходит обращение? Хотя можно конечно проверять есть ли инфа на этот объект и если нет - подгружать файл. Хотя это геморно и рациональность начнет проявляться только если у вас на объект будет строк 200.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка AndruXa Blitz3D 47 05.10.2007 01:24
Следы на обЪекте BlackDragon 3D-программирование 12 07.08.2007 14:15
Загрузка b3d untouchable 3D-программирование 3 13.03.2007 15:54
Предложите способ вывода цифровой информации. UA6BIX Основной форум 4 12.12.2006 10:49
Клик на объекте Valet 3D-программирование 10 24.08.2006 13:28


Часовой пояс GMT +4, время: 16:36.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com