Форум: "Игры";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
ВнизПроникновение объектов друг в друга Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.041 c