Главная страница
    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.46 MB
Время: 0.042 c
15-1168733250
Rouse_
2007-01-14 03:07
2007.02.04
Эволюция


15-1168969163
FAskerQ
2007-01-16 20:39
2007.02.04
Task Killer


2-1169189968
sinys
2007-01-19 09:59
2007.02.04
fast report 2.33


6-1156944529
Орион
2006-08-30 17:28
2007.02.04
Transfer-encoding: chunked


15-1168870654
Manic Mechanic
2007-01-15 17:17
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский