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

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







guest3d
Quest3D - Русскоязычное сообщество > Quest3D > Логика > Как подвязать действия к GUI элементам?
Как подвязать действия к GUI элементам?
(Прочитано 14338 раз)
  [1]
Печать
ice99 | * | Новичок | Сообщений: 31 | « 20 Апреля 2008, 21:48:08 »
Как подвязать действия к GUI элементам? |
0
Есть сцены №1,№2 и №3.
Есть идея в левом верхнем углу (каждой) сделать ComboBox, со списком "Сцена1,Сцена2,Сцена3", при выборе которых загружается соответствующая сцена.
1. Это возможно?
2. Как подвязать действие к клику?
3. Какой командой загрузить сцену cgr?
KBECT0MAH | ***** | Модератор | Старожил | Сообщений: 434 | «Ответ #1 21 Апреля 2008, 00:18:50 »
Re: Как подвязать действия к GUI элементам? |
1
1. Возможно.
2. Смотри структуру "Rotation Check Box" в ...Quest3D 3.6.6\Tutorials\2.7 - Graphic user interface\
3. Загрузить CGR в проект - "Импорт", запустить новую стартовую группу - SetNewStartChannel.

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

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

* pr.jpg (34.71 Кб, 444x605 - просмотрено 2942 раз.)
KBECT0MAH | ***** | Модератор | Старожил | Сообщений: 434 | «Ответ #3 02 Мая 2008, 19:54:19 »
Re: Как подвязать действия к GUI элементам? |
3
...
но ПОЧЕМУ дети "render"-а не вызываются?
...

Ты задал тип ChannelSwitch'у? Надо кликнуть на нем два раза, выбрать 3D Render и нажать кнопку Set.
ice99 | * | Новичок | Сообщений: 31 | «Ответ #4 03 Мая 2008, 09:04:18 »
Re: Как подвязать действия к GUI элементам? |
4
...
но ПОЧЕМУ дети "render"-а не вызываются?
...

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

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

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

Редактирование:
еще в самом "Квесте" есть пример -
Templates > 08-System > Dynamic Loading > Download Manager > Load CGR From File
.
« Последнее редактирование: 04 Мая 2008, 01:55:47 от KBECT0MAH »
ice99 | * | Новичок | Сообщений: 31 | «Ответ #6 05 Мая 2008, 20:13:59 »
Re: Как подвязать действия к GUI элементам? |
6
...
Хочу сделать следующую структуру ПАПКИ ГОТОВОГО проекта.
"Оболочка.ехе"
  "Сцена1.cgr"
  "Сцена2.cgr"
  "Сцена3.cgr"
В зависимости от моих манипуляций с меню - "Оболочка.ехе" грузит соответствующую сцену из своей же папки.
...

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

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


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

Если ты внимательно смотрел пример Dynamic lua loading, то там модели и текстуры грузятся
с удаленного сервера!! Если тебе надо грузить с винта, то тебе надо прописать жесткий путь -
например "C:\SuperPuperDemka\ModelsShmodels\"
Я не проверял  Строит глазки но должно работать  Смеющийся
.
ice99 | * | Новичок | Сообщений: 31 | «Ответ #8 05 Мая 2008, 21:14:46 »
Re: Как подвязать действия к GUI элементам? |
8
Что-то я не могу понять все-равно. Посмотрел несколько примеров, все однотипные, сводятся к одному:
например "q.LoadChannelGroupDQ("Box.cgr", "Box",0, "DownloadProgress")"
НО!!!
такой метод работает ТОЛЬКО когда при паблише я ВКЛЮЧАЮ подгружаемый файл (Box.cgr) в компилированный проект. Но смысл то был в другом - брать "Box.cgr" c ВИНТА.
...

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

то же самое. не вызывается и все тут.
прикрепил пример
* LUA07 - Download Manager.cgr (63.84 Кб - загружено 1499 раз.)
* LUA07 - Box.cgr (17.62 Кб - загружено 1501 раз.)
KBECT0MAH | ***** | Модератор | Старожил | Сообщений: 434 | «Ответ #9 05 Мая 2008, 23:27:22 »
Re: Как подвязать действия к GUI элементам? |
9
да нет там никакого удаленного сервера
в примере
смотри скрин примера из папки - ..\Quest3D 3.6.6\Examples\Advanced\Dynamic lua loading\

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

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

* Inf_Lua_DL.gif (49.37 Кб, 1128x717 - просмотрено 2929 раз.)
« Последнее редактирование: 05 Мая 2008, 23:34:09 от KBECT0MAH »
ice99 | * | Новичок | Сообщений: 31 | «Ответ #10 06 Мая 2008, 13:54:02 »
Re: Как подвязать действия к GUI элементам? |
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
на "работающий пример". Но он не работает. Может кто проверить?
« Последнее редактирование: 06 Мая 2008, 19:19:45 от ice99 »
 
  [1]
Печать
 
Quest3D - Русскоязычное сообщество > Quest3D > Логика > Как подвязать действия к GUI элементам?
Перейти в: