Главная страница
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
1-1165928238
BOB16
2006-12-12 15:57
2007.02.04
печать на принтер, которые не "по-умолчанию"


2-1168849914
Mishenka
2007-01-15 11:31
2007.02.04
Как узнать высоту системного трея в пикселях?


15-1168928181
vajo
2007-01-16 09:16
2007.02.04
Выбор компьютера


2-1168951444
KyRo
2007-01-16 15:44
2007.02.04
Количество записей в таблице


15-1167999141
Иксик
2007-01-05 15:12
2007.02.04
Дорогие друзья!