Quest3D - Русскоязычное сообщество

Quest3D => Логика => Тема начата: anval от 01 Марта 2009, 10:51:27



Название: Полоса загрузки
Отправлено: anval от 01 Марта 2009, 10:51:27
Кто нибудь решил вопрос ,что бы происходило действие,а не текстурка висела во время загрузки основного проекта?На оффоруме нашел примерчик с предварительной загрузкой текстур,но мне не подходит.


Название: Re: Полоса загрузки
Отправлено: Viik от 01 Марта 2009, 12:30:11
Елси использовать Loader то там есть механизм прогресс бара, есть список цгр которые нужно загрузить, каждый раз кога загружаеться очередная сгрка специальная переменная увеличивается на +1, с помощью нее анимируеш прогресс бар.


Название: Re: Полоса загрузки
Отправлено: anval от 01 Марта 2009, 13:28:05
А без LOADERa? У меня данные об объектах и именах их текстур хранятся в xml.И подгрузка текстур идет одновременно созданием объектов в фэктори.И как это все разделить не представляю.В идеале было бы загружать проект через какой то стартовый файлик,но получается зависание с картинкой до окончания закрузки.Я уже не говорю про полноценную полосу загрузки,а хотяб про какое-то движение во время,показывающее что "не висит".


Название: Re: Полоса загрузки
Отправлено: Viik от 01 Марта 2009, 16:11:18
Loader на LUA написан, посмотри как они делали, поидее ты можеш отследить когда очередной файл загружен, независимо от того юзаеш ХМЛ или нет.


Название: Re: Полоса загрузки
Отправлено: Const_47 от 01 Марта 2009, 18:01:01
&anval

Создай Лоадер клас, у которого есть метод, параметру.txt которого передаем имя твоего xml файла.

1. подгружаем xml
2. читаем xml
3. подгружаем то, что прочитали с хмл.

Тогда фактически ты можеш создавать в xml "шаблоны" подгрузок-выгрузок:)))

"
А без LOADERa? У меня данные об объектах и именах их текстур хранятся в xml.И подгрузка текстур идет одновременно созданием объектов в фэктори.И как это все разделить не представляю.
"

Могло случится так, что твои инстансы в большей иерархической зависимости друг от друга. Значит проэкт
невозможно доработать или росширить без конкретной переделки того, что уже есть. Такому факту есть конкретные
причины... и лекарства... Я не предираюсь, это из личного опыта. Удачи и терпения.

 

   
 


Название: Re: Полоса загрузки
Отправлено: anval от 01 Марта 2009, 19:43:24
собственно почти так у меня и есть.Отдельный класс Setup(xml pars),отдельно Loader-загружает из папок текстуры и тексты.Все это объединяется в процессе создания объектов.
Т.е.ты предлагаешь загрузку прерывистой т.е.XML поделить на несколько частей и в паузах между "переключениями"стартовый цгр будет размораживаться и в нем будет что-либо происходить?


Название: Re: Полоса загрузки
Отправлено: Const_47 от 01 Марта 2009, 20:25:20
Я передлагаю создать лоад-менеджер с помощью которого ты бы мог управлять загрузкой - выгрузкой - рисовать полосу при инициализациий(может созданием инстансов фабрикой). Почему
из стартового цгр? Ты должен управлять ресурсами из любой, ну почти любой части проекта.

Сама полоса загрузки пусть будет протектет методом-инстансом? такого менеджера. Управление такой тебя вообще не должно волновать в проекте. Это задача менеджера.

1 -> load xml
2 -> read xml(models,техтure,возможно данные для фабрики???)
3 -> load models -> рисуем полосу , имя сgr , процент.
4 -> load textures -> рисуем полосу , имя сgr , процент.
5 -> инициализируем инстансы фабрикой -> рисуем полосу , пишем инициализация, процент.

Это делает менеджер "независимым" от конкретного проэкта, а
применимым к последующим, так как реально йому должно быть
пофиг что и когда подгружать и что там инициализируется.

Особенно меня волнует 5 пункт. Я же говорю, зависимо от того какая у тебя иерархия - зависимость  частей проекта.   


Название: Re: Полоса загрузки
Отправлено: anval от 03 Марта 2009, 20:47:36
Частично решил проблемку.Вставил дополнительные строчки в xml и теперь при перезагруке мигает текст.Но при первой загрузке проекта,наверное без стартового цгр не обойтись?


Название: Re: Полоса загрузки
Отправлено: Const_47 от 04 Марта 2009, 01:20:39
Ну я понятия не имею как у тебя выглядит иэрархия, и конкретно с какими проблемами ты сталкиваешься.   
То что сам инстанс менеджера нужно инициализировать при старте это понятно. Например я себе делаю инстанс менеджера из чего только можно. Например GUI менеджер. Менеджер ресурсов. Менеджер звука - инициализирую их при старте. Потом методами управляю из любой части проэкта. Причем для "cвязывания" своей иерархии использую классы-посредники ;). Это позволяет довольно просто розширыть-доработать проэкт, без внесения особенно больших коректив в сами инстансы или иэрархию.





 


Название: Re: Полоса загрузки
Отправлено: anval от 04 Марта 2009, 09:15:58
За основу я взял астероид -фабрика,менелжер и все объединяется в engine.То же для GUI.Добавлен Loader текстур и Sax parser.Т.е.у меня нет динамической подгрузки,просто при инициализации все грузится сразу и в конце кнопкой перезагружается.Ну и PositionTree.

 И ,кстати,на счет PositionionTree хотел выяснить на потом:)
В астероиде они используют его,а в материалах с конференции ,в примере менеджера -get distance, checkAABB.
Т.е.в крупных проектах PositionTree не подходит?


Название: Re: Полоса загрузки
Отправлено: Const_47 от 04 Марта 2009, 12:49:49
Я не применяю такой подход. Может для астероид он и в сам раз, но для проектов побольше он лично мне не нравиться.

Load manager - в идеале singelton. Поскольку там все типы статичны инициализируется при старте. Потом подгружаю все ресурсы динамично. Тогда нет проблем с полоской подгрузки;)

Вообще старайся не зацикливаться на примерах ооп из папочки
Квеста. Иногда тот же билдер значительно предпочтительней фабрики и примеров можно привести массу. Изучай патерны, адаптируй к квесту, тесть на применимость. Буш шаг впереди планеты ;)   

По поводу Тree - дело скорее не в размере проекта, а в применимости-неприменимости к конкретным задачам. И ответить
на 100% можно только потеcтив:))) на своем конкретном примере. 


Название: Re: Полоса загрузки
Отправлено: anval от 14 Марта 2009, 16:36:36
Привет.Решил выбрать простой вариант,так и он не хочет работать в паблише.Почему?


Название: Re: Полоса загрузки
Отправлено: Const_47 от 15 Марта 2009, 00:38:22
То есть, оно не работает именно при паблише?




Название: Re: Полоса загрузки
Отправлено: anval от 15 Марта 2009, 10:23:21
Ну да,когда запускаю exe.Может это связано с тем что,он запускается во временной папке?Я помню,промучился денек з загрузкой текстур,пока не прописал полный путь.Но тут что делать???


Название: Re: Полоса загрузки
Отправлено: Const_47 от 15 Марта 2009, 13:51:57

Ну так отдебаж себе все переменные уже в паблише (2D Screen Text), те что в нерабочей логической церочке, что бы ты точно знал, работает - не работает, а может работает но не рисует.
Тогда точно будеш знать где ошибка.

Taм на пикче, ты используеш Win32 TexOut после Start 3D Scene
- получиш мерцание шрифта, юзай 2D Screen Text.


Название: Re: Полоса загрузки
Отправлено: anval от 15 Марта 2009, 21:08:25
2D screenText не работает.Конечно,пока,не загрузится все.