Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 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.056 c
2-1169127036
krec
2007-01-18 16:30
2007.02.04
Картинки


15-1168768049
Footballer
2007-01-14 12:47
2007.02.04
Олимпиада по информатике


15-1168792589
Riply
2007-01-14 19:36
2007.02.04
Это только у меня DMClient глючит ?


15-1168920267
Slider007
2007-01-16 07:04
2007.02.04
С днем рождения ! 16 января


2-1169115004
sergeyst
2007-01-18 13:10
2007.02.04
Массив





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский