Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.04;
Скачать: CL | DM;

Вниз

Проникновение объектов друг в друга   Найти похожие ветки 

 
Sam Stone ©   (2006-03-19 17:43) [0]

Всем доброго времени суток. Такой вопрос: имеется пара объектов (используется GLScene), один тащится мышкой. Имеем событие с CollisionManager при "столкновении" этих объектов. Не могу додуматься, как сделать так, чтобы один объект не "натаскивался" на другой. Т.е. просто упирался как в стену, но не прилипал (единственное, чего добился )).


 
Fosgen   (2006-03-20 14:03) [1]

Есть такие параметры у объекта TGLFreeForm -  BoundingBox, BoundingSphere - поэкспериментируй с ними. Если непонятно - они определяют габариты объекта. Догадываешься - зачем?


 
Sam Stone ©   (2006-03-20 15:36) [2]

т.е. предлагаешь двигать объект в противоположную сторону, пока IntersectAABBsAbsolute() = true?


 
Yegorchic ©   (2006-03-21 23:18) [3]

Дык наверное, просто проверяешь (в OnMouseMove), нашёл ли один объек на другой, если нашёл - то не выволнять процедуру перемещения (т.е. просто Exit написать).


 
Sam Stone ©   (2006-03-22 19:03) [4]

Да, действительно, простой выход, но ведь вся фигня в том, что объекты уже проникли друг в друга. И потом его нельзя будет оттащить.


 
Yegorchic ©   (2006-03-22 23:57) [5]

А Вы проверяйте в OnMouseMove найдёт ли один объект на другой в новых координатах - если найдёт, то не надо выполнять операцию перетаскивания.
Т.е. новые координаты получить (но не перемещать объект) и проверить столкновение будет ли...


 
Sam Stone ©   (2006-03-23 16:49) [6]

Не таскать объект не подходит. Но это предположение натолкнуло на мысль: стал хранить две последние координаты, грубо говоря последнее и предпоследнее положение объекта. Если срабатывает событие на столкновение, то отодвигаю в цикле пока не исчезнет столкновение на разницу между координатами. Цикл пришлось прилепить, т.к. если резко "натянуть" 1 объект на другой, он не слезет ))) Минус - таскаемый объект дрожит, когда упирается в другой ) Но может чего-нибудь придумаю.



Страницы: 1 вся ветка

Текущий архив: 2007.02.04;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.033 c
15-1168539600
Биритм
2007-01-11 21:20
2007.02.04
Проблемы с винтчестиром


2-1168844996
Garacio
2007-01-15 10:09
2007.02.04
ListView сохранить в .ini


15-1168978499
Bolek
2007-01-16 23:14
2007.02.04
Сборка ConnectionString


6-1157100295
tvv
2006-09-01 12:44
2007.02.04
Работа с каталогами по сети


1-1165939315
Dmitry_177
2006-12-12 19:01
2007.02.04
Сообщение при нажатии на кнопку "свернуть все окна"