• Добро пожаловать на Quest3D - Русскоязычное сообщество.
 

Новости:

Форум Quest3D восстановлен!

Главное меню

Как подвязать действия к GUI элементам?

Автор ice99, 20 апреля 2008, 22:48:08

« назад - далее »

ice99

Есть сцены №1,№2 и №3.
Есть идея в левом верхнем углу (каждой) сделать ComboBox, со списком "Сцена1,Сцена2,Сцена3", при выборе которых загружается соответствующая сцена.
1. Это возможно?
2. Как подвязать действие к клику?
3. Какой командой загрузить сцену cgr?

KBECT0MAH

1. Возможно.
2. Смотри структуру "Rotation Check Box" в ...Quest3D 3.6.6\Tutorials\2.7 - Graphic user interface\
3. Загрузить CGR в проект - "Импорт", запустить новую стартовую группу - SetNewStartChannel.


ice99

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

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

KBECT0MAH

Цитата: ice99 от 02 мая 2008, 20:01:59
...
но ПОЧЕМУ дети "render"-а не вызываются?
...

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

ice99

Цитата: KBECT0MAH от 02 мая 2008, 20:54:19
Цитата: ice99 от 02 мая 2008, 20:01:59
...
но ПОЧЕМУ дети "render"-а не вызываются?
...

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

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

KBECT0MAH

#5
Цитата: ice99 от 03 мая 2008, 10:04:18
...
Хочу сделать следующую структуру ПАПКИ ГОТОВОГО проекта.
"Оболочка.ехе"
  "Сцена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
.

ice99

Цитата: KBECT0MAH от 04 мая 2008, 00:52:31
Цитата: ice99 от 03 мая 2008, 10:04:18
...
Хочу сделать следующую структуру ПАПКИ ГОТОВОГО проекта.
"Оболочка.ехе"
  "Сцена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 ВИНТА.
Или я чего не правильно понял? Рисунок прилагаю.


KBECT0MAH

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

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

ice99

Цитата: KBECT0MAH от 05 мая 2008, 21:43:51
Цитата: ice99 от 05 мая 2008, 21:13:59
Что-то я не могу понять все-равно. Посмотрел несколько примеров, все однотипные, сводятся к одному:
например "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")

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

KBECT0MAH

#9
Цитата: ice99 от 05 мая 2008, 22:14:46
да нет там никакого удаленного сервера
в примере
смотри скрин примера из папки - ..\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 сделан.
Просьба ко всем - указывайте версию "Квеста" ваших исходников.
.

ice99

#10
С обратными слешами - РАБОТАЕТ, но ТОЛЬКО абсолютные пути.
т.е. ни один из относительных вариантов
.\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
на "работающий пример". Но он не работает. Может кто проверить?