![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как проверить коллизии?
AndrewK © (2002-09-26 12:47:00)
Доброго времени суток.
У меня есть проблемка.
Работаю с GLScene
Хочу сделать комнату, стены создаются динамически из прямоугольников, и поместить в нее несколько объектов из файлов .3ds. Надо сделать так, что бы эти объекты могли двигаться внутри комнаты (с этим проблем не возникло), но не могли выезжать за стены и проходить сквозь друг друга. Если обрабатываю при помощи Collision менеджера, то у меня возникает дерганье объектов. Как вообще можно решить такого рода задачку с использованием GLScene?
Может кто сталкивался с такой проблемой?
JrKI (2003-03-03 20:48:00) [1]Нуу... Могу предложить стенам ставить Tag > XXX
А затем проверяйте столкновение:
(Это набросок! Дорабатывайте!)
Если активировано перемещение Наш_Обьект то
Если Столкнуты Обьект Типа Стена (то есть тэг больше XXX) И Обьект Типа Наш_Обьект
то Не двигать Наш_Обьект в Направление иначе двигать.
P.S. Ничего, кроме комментов&алгоритмов на ящик не бросать !!!
SI-riuss (2002-10-16 15:58:00) [2]
Слушай. В GLScene есть одна демка, не помню как называется, там шарик летает внутри 3ds объекта и отскакивает от него. Посмотри как там организовано это.
Ketmar (2002-10-13 15:51:00) [3]
вообще coldet - очень интересная штука. у меня было вариантов 6 написано %-) остановился на Dynamic Plane Shifting BSP Traversal. впрочем, вам вряд ли подойдет, если много стен (надо динамически строить BSP-дерево). все зависит от того, насколько у вас большие комнаты...
Satanas Nobiscum! 13-Oct-XXXVII A.S.
Евгений Анатольевич (2002-10-11 23:23:00) [4]
Может это и глупо, но я предложу:
Допустим самый большой радиус по X первого объекта равен 10, а второго 5. По Y 10 и 5 соответственно.
Смотрим:
if (Actor1.Position.X+15 >= actor2.Position.X) and
(Actor1.Position.Y+15 >= actor2.Position.Y) then
алгоритм расхождения.
end;
NailMan (2002-09-28 01:16:00) [5]
Попробуй написать свой контроль столкновений или посмотри на http:\\www.gamedev.ru (.net). Может там чего найдешь. Вроже чего-то там такое видел.
AndrewK (2002-09-27 16:08:00) [6]
Никто ничего посоветовать не может?