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

Quest3D => Логика => Тема начата: ice99 от 20 Апреля 2008, 21:48:08



Название: Как подвязать действия к GUI элементам?
Отправлено: ice99 от 20 Апреля 2008, 21:48:08
Есть сцены №1,№2 и №3.
Есть идея в левом верхнем углу (каждой) сделать ComboBox, со списком "Сцена1,Сцена2,Сцена3", при выборе которых загружается соответствующая сцена.
1. Это возможно?
2. Как подвязать действие к клику?
3. Какой командой загрузить сцену cgr?


Название: Re: Как подвязать действия к GUI элементам?
Отправлено: KBECT0MAH от 21 Апреля 2008, 00:18:50
1. Возможно.
2. Смотри структуру "Rotation Check Box" в ...Quest3D 3.6.6\Tutorials\2.7 - Graphic user interface\
3. Загрузить CGR в проект - "Импорт", запустить новую стартовую группу - SetNewStartChannel.



Название: Re: Как подвязать действия к GUI элементам?
Отправлено: ice99 от 02 Мая 2008, 19:01:59
Опять я.
Сделал объект "Combobox"
У "Combobox" есть переменная "selected item" (0,1...)
Добавляю "ChannelCaller"-"ChannelSwitch" для переключения 3D объектов в сцене согласно "selected item".
Величина "selected item" меняется, действует на "Channel switch" и ВЫЗЫВАЕТ "render" (появляется голубая рамка в эдиторе),
но ПОЧЕМУ дети "render"-а не вызываются?
Как быть?

прикрепил скриншот


Название: Re: Как подвязать действия к GUI элементам?
Отправлено: KBECT0MAH от 02 Мая 2008, 19:54:19
...
но ПОЧЕМУ дети "render"-а не вызываются?
...

Ты задал тип ChannelSwitch'у? Надо кликнуть на нем два раза, выбрать 3D Render и нажать кнопку Set.


Название: Re: Как подвязать действия к GUI элементам?
Отправлено: ice99 от 03 Мая 2008, 09:04:18
...
но ПОЧЕМУ дети "render"-а не вызываются?
...

Ты задал тип ChannelSwitch'у? Надо кликнуть на нем два раза, выбрать 3D Render и нажать кнопку Set.

В который раз выручаешь! Все заработало. Двигаюсь дальше. Следующее препятствие.Смысл в следующем. Хочу сделать следующую структуру ПАПКИ ГОТОВОГО проекта.
"Оболочка.ехе"
  "Сцена1.cgr"
  "Сцена2.cgr"
  "Сцена3.cgr"
В зависимости от моих манипуляций с меню - "Оболочка.ехе" грузит соответствующую сцену из своей же папки.
Просто хочу не перекомпилируя ехе-шник подбрасывать однотипные сцены в папку. Например в Сцена3.cgr геометрический объект. Т.е. нужно "склеить куски" кодов "Оболочка.ехе"+"Сцена3.cgr"
Кто делал? Какие наметки?


Название: Re: Как подвязать действия к GUI элементам?
Отправлено: KBECT0MAH от 03 Мая 2008, 23:52:31
...
Хочу сделать следующую структуру ПАПКИ ГОТОВОГО проекта.
"Оболочка.ехе"
  "Сцена1.cgr"
  "Сцена2.cgr"
  "Сцена3.cgr"
В зависимости от моих манипуляций с меню - "Оболочка.ехе" грузит соответствующую сцену из своей же папки.
...

Посмотри здесь - ..\Quest3D 3.6.6\Examples\Advanced\Dynamic lua loading\
Я тут просматривал для своих нужд, думаю это и тебе подойдет  :D

Редактирование:
еще в самом "Квесте" есть пример -
Templates > 08-System > Dynamic Loading > Download Manager > Load CGR From File
.


Название: Re: Как подвязать действия к GUI элементам?
Отправлено: ice99 от 05 Мая 2008, 20:13:59
...
Хочу сделать следующую структуру ПАПКИ ГОТОВОГО проекта.
"Оболочка.ехе"
  "Сцена1.cgr"
  "Сцена2.cgr"
  "Сцена3.cgr"
В зависимости от моих манипуляций с меню - "Оболочка.ехе" грузит соответствующую сцену из своей же папки.
...

Посмотри здесь - ..\Quest3D 3.6.6\Examples\Advanced\Dynamic lua loading\
Я тут просматривал для своих нужд, думаю это и тебе подойдет  :D

Редактирование:
еще в самом "Квесте" есть пример -
Templates > 08-System > Dynamic Loading > Download Manager > Load CGR From File
.
Что-то я не могу понять все-равно. Посмотрел несколько примеров, все однотипные, сводятся к одному:
например "q.LoadChannelGroupDQ("Box.cgr", "Box",0, "DownloadProgress")"
НО!!!
такой метод работает ТОЛЬКО когда при паблише я ВКЛЮЧАЮ подгружаемый файл (Box.cgr) в компилированный проект. Но смысл то был в другом - брать "Box.cgr" c ВИНТА.
Или я чего не правильно понял? Рисунок прилагаю.



Название: Re: Как подвязать действия к GUI элементам?
Отправлено: KBECT0MAH от 05 Мая 2008, 20:43:51
Что-то я не могу понять все-равно. Посмотрел несколько примеров, все однотипные, сводятся к одному:
например "q.LoadChannelGroupDQ("Box.cgr", "Box",0, "DownloadProgress")"
НО!!!
такой метод работает ТОЛЬКО когда при паблише я ВКЛЮЧАЮ подгружаемый файл (Box.cgr) в компилированный проект. Но смысл то был в другом - брать "Box.cgr" c ВИНТА.
...

Если ты внимательно смотрел пример Dynamic lua loading, то там модели и текстуры грузятся
с удаленного сервера!! Если тебе надо грузить с винта, то тебе надо прописать жесткий путь -
например "C:\SuperPuperDemka\ModelsShmodels\"
Я не проверял  ::) но должно работать  ;D
.


Название: Re: Как подвязать действия к GUI элементам?
Отправлено: ice99 от 05 Мая 2008, 21:14:46
Что-то я не могу понять все-равно. Посмотрел несколько примеров, все однотипные, сводятся к одному:
например "q.LoadChannelGroupDQ("Box.cgr", "Box",0, "DownloadProgress")"
НО!!!
такой метод работает ТОЛЬКО когда при паблише я ВКЛЮЧАЮ подгружаемый файл (Box.cgr) в компилированный проект. Но смысл то был в другом - брать "Box.cgr" c ВИНТА.
...

Если ты внимательно смотрел пример Dynamic lua loading, то там модели и текстуры грузятся
с удаленного сервера!! Если тебе надо грузить с винта, то тебе надо прописать жесткий путь -
например "C:\SuperPuperDemka\ModelsShmodels\"
Я не проверял  ::) но должно работать  ;D
.
да нет там никакого удаленного сервера
в примере
q.LoadChannelGroupDQ("LUA07 - Box.cgr", "Box",0, "DownloadProgress")
по твоему совету исправил на
q.LoadChannelGroupDQ("D:\3456435\LUA07_-_Download_Manager\LUA07 - Box.cgr", "Box",0, "DownloadProgress")

то же самое. не вызывается и все тут.
прикрепил пример


Название: Re: Как подвязать действия к GUI элементам?
Отправлено: KBECT0MAH от 05 Мая 2008, 23:27:22
да нет там никакого удаленного сервера
в примере
смотри скрин примера из папки - ..\Quest3D 3.6.6\Examples\Advanced\Dynamic lua loading\

Цитировать
...
по твоему совету исправил на
q.LoadChannelGroupDQ("D:\3456435\LUA07_-_Download_Manager\LUA07 - Box.cgr", "Box",0, "DownloadProgress")
то же самое. не вызывается и все тут.
...
Я же написал , что не проверял  ::) но сейчас посмотрел и выяснил, что путь надо писать через *опу  :o
с "правыми слэшами". Вот так - "C:/SuperPuperDemka/ModelsShmodels/BoxShmox.crg"  ;D
Только я пока не разобрался как заставить отображаться обекты в сцене :-\
в окне Object 3D View  геометрия отображается, а в Animation 3D View нет...
Буду копать завтра днем  ;D

Редактирование:
забыл сказать  :) что твой исходник не смотрел, потому что он в 4.1 сделан.
Просьба ко всем - указывайте версию "Квеста" ваших исходников.
.


Название: Re: Как подвязать действия к GUI элементам?
Отправлено: ice99 от 06 Мая 2008, 13:54:02
С обратными слешами - РАБОТАЕТ, но ТОЛЬКО абсолютные пути.
т.е. ни один из относительных вариантов
.\something.cgr
.\\something.cgr
\something.cgr
\\something.cgr
./something.cgr
/something.cgr
something.cgr
не подходит.
Запустил несколько потоков на офсайте - по-ходу никто так и не решил вопрос. Вроде-как там из-за бага в относительный путь добавляютя кавычки ("), поэтому система не может ничего найти. Есть вариант запускать экзешник проекта через батник, который создает в текстовике запускной путь, а квест подхватывает его. Говорят так работает, но как-то через одно место.
Пытался поковыряться winhex-ом и убрать найти эти лишние кавычки, нашел пару мест, но хакер из меня никакой, ничего не вышло.
Какие идеи?

На офсайте завязал жаркую дискуссию по этому вопросу, с примерами и доказательствами, в конце концов они решили что я использую варезный квест, и предложили зарегить копию.
Вот ссылка,
http://75.125.130.82/forum/index.php?action=dlattach;topic=64584.0;attach=126032
на "работающий пример". Но он не работает. Может кто проверить?