Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2012, 15:08   #1
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию Обработка столкновений

Гугл, к сожалению, не помог - все статьи на тему объясняют лишь как выявлять столкновения. Меня же интересует как их обрабатывать. Наиболее подходящим кажется способ минимального изменения положения объектов до отсутствия столкновения. Но тут возникают проблемы при столкновении нескольких объектов одновременно и т.д.
В общем, не хочется писать кривой велосипед, наполненный багами. Как это делают?
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 12.07.2012, 16:42   #2
karuy
 
Регистрация: 24.05.2010
Сообщений: 8
По умолчанию

С помощью физ двигов. Или задача стоит именно руками?
karuy вне форума Ответить с цитированием
Старый 12.07.2012, 17:27   #3
Kostia
Участник клуба
 
Аватар для Kostia
 
Регистрация: 21.11.2007
Сообщений: 1,690
По умолчанию

Position-Based подход, интегрирование Верле
http://ru.wikipedia.org/wiki/%D0%98%...80%D0%BB%D0%B5
http://www.gamedev.ru/code/articles/...onBasedPhysics
http://www.twirpx.com/file/657303/

Последний раз редактировалось Kostia; 12.07.2012 в 21:21.
Kostia вне форума Ответить с цитированием
Старый 12.07.2012, 19:53   #4
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
Наиболее подходящим кажется способ минимального изменения положения объектов до отсутствия столкновения.
Это явно нефизично.
Нужно силы к объекту прикладывать.
s-andriano вне форума Ответить с цитированием
Старый 12.07.2012, 23:23   #5
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Цитата:
Сообщение от karuy
С помощью физ двигов. Или задача стоит именно руками?
Да, конечно, руками. При использовании движка вопросов бы не возникало совсем)
Цитата:
Сообщение от Kostia
Position-Based подход
Огромное спасибо за материал.
Цитата:
Сообщение от s-andriano
Это явно нефизично.
Нужно силы к объекту прикладывать.
Да, но я подразумевал абсолютно твердые тела. И если они будут входить друг в друга и постепенно расходиться, это будет несколько настораживать)
Форматируйте код, будьте людьми.

Последний раз редактировалось Granus; 12.07.2012 в 23:43.
Granus вне форума Ответить с цитированием
Старый 13.07.2012, 08:03   #6
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
Да, но я подразумевал абсолютно твердые тела. И если они будут входить друг в друга и постепенно расходиться, это будет несколько настораживать)
Тогда - геометрия: просчитать их возможное столкновение ДО того, как оно произошло, и своевременно остановить, не дожидаясь, пока объекты соприкоснутся.

Я так полагаю, что раз тела абсолютно твердые, то и остановить их перемещение можно абсолютно мгновенно.
s-andriano вне форума Ответить с цитированием
Старый 13.07.2012, 13:23   #7
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Цитата:
Сообщение от s-andriano
Тогда - геометрия: просчитать их возможное столкновение ДО того, как оно произошло, и своевременно остановить, не дожидаясь, пока объекты соприкоснутся.
Собственно, примерно это я и собираюсь делать. Опять же, возникают непонятки в реализации случая столкновения нескольких объектов.
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 13.07.2012, 13:35   #8
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Granus Посмотреть сообщение
Собственно, примерно это я и собираюсь делать. Опять же, возникают непонятки в реализации случая столкновения нескольких объектов.
А вот это уже непонятно. Не должно быть здесь непоняток.
s-andriano вне форума Ответить с цитированием
Старый 13.07.2012, 14:20   #9
Granus
С++
Форумчанин
 
Аватар для Granus
 
Регистрация: 22.09.2008
Сообщений: 791
По умолчанию

Может быть я чего-то недопонял. Скажем, столкновение нескольких AABB одновременно. Как Вы предлагаете его предотвратить?
Форматируйте код, будьте людьми.
Granus вне форума Ответить с цитированием
Старый 13.07.2012, 18:15   #10
duckhunter
Пользователь
 
Аватар для duckhunter
 
Регистрация: 03.07.2012
Сообщений: 25
По умолчанию

выталкивать их на обратную скорость друг от друга.
duckhunter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обработка столкновений с блоками alonix Помощь студентам 14 15.04.2012 19:29
обработка числовых последовательностей и последовательная обработка символов Renat(kai) Помощь студентам 3 28.03.2012 23:22
обработка файлов Pepsik Помощь студентам 1 10.07.2011 21:35
Обработка столкновений окружностей. Вадим Буренков Gamedev - cоздание игр: Unity, OpenGL, DirectX 18 08.03.2010 13:43
Код проверки столкновений не работает. Манжосов Денис :) Общие вопросы Delphi 8 02.02.2009 10:31