22 Сентября 2024, 14:27:40
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Навигация по форуму







guest3d
Quest3D - Русскоязычное сообщество > Quest3D > Логика > Полоса загрузки
Полоса загрузки
(Прочитано 18860 раз)
  [1] 2
Печать
anval | *** | Постоялец | Сообщений: 148 | « 01 Марта 2009, 10:51:27 »
Полоса загрузки |
0
Кто нибудь решил вопрос ,что бы происходило действие,а не текстурка висела во время загрузки основного проекта?На оффоруме нашел примерчик с предварительной загрузкой текстур,но мне не подходит.
Viik | **** | Старожил | Сообщений: 302 | «Ответ #1 01 Марта 2009, 12:30:11 »
Re: Полоса загрузки |
1
Елси использовать Loader то там есть механизм прогресс бара, есть список цгр которые нужно загрузить, каждый раз кога загружаеться очередная сгрка специальная переменная увеличивается на +1, с помощью нее анимируеш прогресс бар.
anval | *** | Постоялец | Сообщений: 148 | «Ответ #2 01 Марта 2009, 13:28:05 »
Re: Полоса загрузки |
2
А без LOADERa? У меня данные об объектах и именах их текстур хранятся в xml.И подгрузка текстур идет одновременно созданием объектов в фэктори.И как это все разделить не представляю.В идеале было бы загружать проект через какой то стартовый файлик,но получается зависание с картинкой до окончания закрузки.Я уже не говорю про полноценную полосу загрузки,а хотяб про какое-то движение во время,показывающее что "не висит".
Viik | **** | Старожил | Сообщений: 302 | «Ответ #3 01 Марта 2009, 16:11:18 »
Re: Полоса загрузки |
3
Loader на LUA написан, посмотри как они делали, поидее ты можеш отследить когда очередной файл загружен, независимо от того юзаеш ХМЛ или нет.
Const_47 | **** | Старожил | Сообщений: 299 | «Ответ #4 01 Марта 2009, 18:01:01 »
Re: Полоса загрузки |
4
&anval

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

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

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

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

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

 

   
 
anval | *** | Постоялец | Сообщений: 148 | «Ответ #5 01 Марта 2009, 19:43:24 »
Re: Полоса загрузки |
5
собственно почти так у меня и есть.Отдельный класс Setup(xml pars),отдельно Loader-загружает из папок текстуры и тексты.Все это объединяется в процессе создания объектов.
Т.е.ты предлагаешь загрузку прерывистой т.е.XML поделить на несколько частей и в паузах между "переключениями"стартовый цгр будет размораживаться и в нем будет что-либо происходить?
Const_47 | **** | Старожил | Сообщений: 299 | «Ответ #6 01 Марта 2009, 20:25:20 »
Re: Полоса загрузки |
6
Я передлагаю создать лоад-менеджер с помощью которого ты бы мог управлять загрузкой - выгрузкой - рисовать полосу при инициализациий(может созданием инстансов фабрикой). Почему
из стартового цгр? Ты должен управлять ресурсами из любой, ну почти любой части проекта.

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

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

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

Особенно меня волнует 5 пункт. Я же говорю, зависимо от того какая у тебя иерархия - зависимость  частей проекта.   
anval | *** | Постоялец | Сообщений: 148 | «Ответ #7 03 Марта 2009, 20:47:36 »
Re: Полоса загрузки |
7
Частично решил проблемку.Вставил дополнительные строчки в xml и теперь при перезагруке мигает текст.Но при первой загрузке проекта,наверное без стартового цгр не обойтись?
Const_47 | **** | Старожил | Сообщений: 299 | «Ответ #8 04 Марта 2009, 01:20:39 »
Re: Полоса загрузки |
8
Ну я понятия не имею как у тебя выглядит иэрархия, и конкретно с какими проблемами ты сталкиваешься.   
То что сам инстанс менеджера нужно инициализировать при старте это понятно. Например я себе делаю инстанс менеджера из чего только можно. Например GUI менеджер. Менеджер ресурсов. Менеджер звука - инициализирую их при старте. Потом методами управляю из любой части проэкта. Причем для "cвязывания" своей иерархии использую классы-посредники Подмигивающий. Это позволяет довольно просто розширыть-доработать проэкт, без внесения особенно больших коректив в сами инстансы или иэрархию.





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

 И ,кстати,на счет PositionionTree хотел выяснить на потом:)
В астероиде они используют его,а в материалах с конференции ,в примере менеджера -get distance, checkAABB.
Т.е.в крупных проектах PositionTree не подходит?
Const_47 | **** | Старожил | Сообщений: 299 | «Ответ #10 04 Марта 2009, 12:49:49 »
Re: Полоса загрузки |
10
Я не применяю такой подход. Может для астероид он и в сам раз, но для проектов побольше он лично мне не нравиться.

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

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

По поводу Тree - дело скорее не в размере проекта, а в применимости-неприменимости к конкретным задачам. И ответить
на 100% можно только потеcтив:))) на своем конкретном примере. 
anval | *** | Постоялец | Сообщений: 148 | «Ответ #11 14 Марта 2009, 16:36:36 »
Re: Полоса загрузки |
11
Привет.Решил выбрать простой вариант,так и он не хочет работать в паблише.Почему?

* Nothprobl.jpg (50.22 Кб, 512x512 - просмотрено 2743 раз.)
Const_47 | **** | Старожил | Сообщений: 299 | «Ответ #12 15 Марта 2009, 00:38:22 »
Re: Полоса загрузки |
12
То есть, оно не работает именно при паблише?


anval | *** | Постоялец | Сообщений: 148 | «Ответ #13 15 Марта 2009, 10:23:21 »
Re: Полоса загрузки |
13
Ну да,когда запускаю exe.Может это связано с тем что,он запускается во временной папке?Я помню,промучился денек з загрузкой текстур,пока не прописал полный путь.Но тут что делать???
Const_47 | **** | Старожил | Сообщений: 299 | «Ответ #14 15 Марта 2009, 13:51:57 »
Re: Полоса загрузки |
14

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

Taм на пикче, ты используеш Win32 TexOut после Start 3D Scene
- получиш мерцание шрифта, юзай 2D Screen Text.
 
  [1] 2
Печать
 
Quest3D - Русскоязычное сообщество > Quest3D > Логика > Полоса загрузки
Перейти в: