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

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







guest3d
Quest3D - Русскоязычное сообщество > Quest3D > Логика > Выделить и перетащить объекты
Выделить и перетащить объекты
(Прочитано 12734 раз)
  [1]
Печать
Alteste | *** | Постоялец | Сообщений: 224 | « 29 Марта 2010, 13:06:03 »
Выделить и перетащить объекты |
0
Здравствуйте! Мне нужно, чтобы в сцене можно было выделять мышкой и перетаскивать отдельные объекты. И чтоб можно было вернуть все на место одной кнопкой, типа ресет.  Как можно реализовать подобное? У кого есть примерчик?

Искал на форумах офф и здесь - не нашел, имеются только примеры с одним объектом.
Ruslan | ***** | Ветеран | Сообщений: 664 | «Ответ #1 29 Марта 2010, 13:10:04 »
Re: Выделить и перетащить объекты |
1
Не буду советовать ОО, сам не разбирался, но как вариант можно объекты загнать в массив, и переделать тот пример, который у тебя уже есть, ссылаясь к объектам с помощью индекса.
Может, поможет:
пост №6
http://guest3d.wohlnet.ru/forum/index.php?topic=869.0
да кстати, там естественно нужно будет добавлять в массив как минимум матрицы, а желательно еще и текстуры.
Если разобраться с примером:
пост №1:
http://guest3d.wohlnet.ru/forum/index.php?topic=727.new
то можно сделать динамичную загрузку объектов, вместе с матрицами, текстурами и т.д.
Наверное, было бы красиво, еще использовать физику, для того, что бы объекты сталкивались друг с другом и например со стенами помещения.

загрузчик:
http://guest3d.wohlnet.ru/forum/index.php?topic=1468.msg8838#new
« Последнее редактирование: 29 Марта 2010, 23:56:04 от Ruslan »
Alteste | *** | Постоялец | Сообщений: 224 | «Ответ #2 30 Марта 2010, 08:53:08 »
Re: Выделить и перетащить объекты |
2
Спасибо конечно, но мне безо всяких наворотов желательно - просто выделил мышкой и потащил по оси какой-нибудь.
Ruslan | ***** | Ветеран | Сообщений: 664 | «Ответ #3 30 Марта 2010, 09:50:52 »
Re: Выделить и перетащить объекты |
3
Допустим, у тебя 5 табуреток в сцене, и нужно сделать так, что бы пользователь мог двигать эти табуретки в помещении.
Вариант 1:(как не нужно делать)
можно сделать 5 систем (каждая система будет работать с одним определенным объектом).
Вариант 2:(как желательно делать)
Разместить, например с помощью загрузчика объекты, матрицы, текстуры, и т.д. в массивы, написать одну систему, которая будет обращаться к данным, в цикле, посредством чтения из массива по индексу. При этом проект не раздуется в размерах, и твоя система будет универсальной, тоесть можно будет использовать не только 5 табуреток, а любое количество объектов.
   У меня нет конкретно рабочего примера, о котором ты спрашивал, но то, что я предложил, практически готовое решение, осталось адаптировать твой пример, под мой загрузчик.
DimiS | **** | Старожил | Сообщений: 284 | «Ответ #4 31 Марта 2010, 15:02:45 »
Re: Выделить и перетащить объекты |
4
так в чем же собственно вопрос? в том как тянуть вдоль оси, или в том как это сделать с несколькими объектами?
Ruslan | ***** | Ветеран | Сообщений: 664 | «Ответ #5 31 Марта 2010, 15:11:17 »
Re: Выделить и перетащить объекты |
5
Вообще то да, я наверное погорячился, на счет пяти систем, для каждой табуретке по системе..  Веселый
можно организовать все гораздо проще, с помощью например канала ChannelSwitch.
Ruslan | ***** | Ветеран | Сообщений: 664 | «Ответ #6 01 Апреля 2010, 14:35:20 »
Re: Выделить и перетащить объекты |
6
Alteste
Здесь посмотри:
http://guest3d.wohlnet.ru/forum/index.php?topic=1471.new
« Последнее редактирование: 02 Апреля 2010, 23:36:11 от Ruslan »
Campo | ** | Пользователь | Сообщений: 50 | «Ответ #7 09 Июля 2010, 13:28:11 »
Re: Выделить и перетащить объекты |
7
Я делал нечто подобное, используя массив. не без помощи знатоков... )
http://forum.quest3d.com/index.php?topic=67143.0
Ruslan | ***** | Ветеран | Сообщений: 664 | «Ответ #8 09 Июля 2010, 13:45:08 »
Re: Выделить и перетащить объекты |
8
а как там двигать объекты, которые уже расставлены, и сброс к первоночальным установкам?

ред. ага, нашел как двигать - левый контрал..

Кстате, в этом примере, когда наводишь курсором на ближний объект, выделяется дальний..  Подмигивающий
« Последнее редактирование: 09 Июля 2010, 13:52:05 от Ruslan »
Campo | ** | Пользователь | Сообщений: 50 | «Ответ #9 09 Июля 2010, 14:41:02 »
Re: Выделить и перетащить объекты |
9
нужно использовать collision ray check -> get closest collision (slower)
очевидно, что работа на вычислениями замедлится.
Ruslan | ***** | Ветеран | Сообщений: 664 | «Ответ #10 09 Июля 2010, 14:44:36 »
Re: Выделить и перетащить объекты |
10
Точно не скажу на счет get closest collision  (вроде это работает только на фейсы в пределах данного объекта, кстате не так уж и кретично медленно она работает, я думаю, что раза в два медленнее, так как обрабатывает бекфейсы)
Можно еще отсортировать объекты по расстоянию до камеры.
« Последнее редактирование: 09 Июля 2010, 14:49:56 от Ruslan »
DimiS | **** | Старожил | Сообщений: 284 | «Ответ #11 10 Июля 2010, 00:03:49 »
Re: Выделить и перетащить объекты |
11
не, врядли сортировка чёто изменит, проверить все равно надо будет все объекты  Подмигивающий
самое лучшее что можно сделать это перед проверкой очередного объекта проверять его баундбокс на пересечение с лучом и на то что точка пересечения с баундбоксом ближе чем последняя найденная точка на поверхности какого-то предыдущего объекта
Campo | ** | Пользователь | Сообщений: 50 | «Ответ #12 11 Июля 2010, 12:39:19 »
Re: Выделить и перетащить объекты |
12
в любом случае и первый и второй вариант рабочие, выбирать пользователю.
 
  [1]
Печать
 
Quest3D - Русскоязычное сообщество > Quest3D > Логика > Выделить и перетащить объекты
Перейти в: