Ресурсы методов используют для обнаружения коллизий в 2D?

Реакция на: «Проблема в том, что у меня очень плохие результаты в реальной жизни - иногда игроки получают 3 крита в 5 хитов, иногда ни один из 15 хитов».

У вас есть шанс где-то между 3 и 4% ничего не получают в 15 хитов ...

12
задан m87 19 August 2017 в 14:44
поделиться

5 ответов

Лично, я люблю работу Paul Bourke.

Кроме того, писал Paul Nettle раньше по теме. У него есть полная 3D библиотека обнаружения коллизий, но можно больше интересоваться идеями позади таких библиотек (которые очень применимы к 2D). Для этого посмотрите Общее Обнаружение коллизий для Игр Используя Эллипсоиды.

2
ответ дан 2 December 2019 в 19:33
поделиться

Обнаружение коллизий часто является двумя процессами фазы. Своего рода "широкая фаза" алгоритм для determinining, если два объекта даже имеют шанс наложения (чтобы стараться избегать n^2 выдерживает сравнение), сопровождаемый "узкой фазой" алгоритм обнаружения коллизий, который основан на требованиях геометрии Вашего приложения.

Развертка и Чернослив являются хорошо установленным эффективным широким алгоритмом фазы (с горсткой вариантов, которые могут или не могут удовлетворить Вашему приложению) для объектов, подвергающихся относительно физическому движению (вещи, которые перемещают сумасшедший быстрый или имеют весьма различные размеры, и регионы ограничения могли бы сделать это неподходящим). Библиотека Bullet имеет 3-ю реализацию для ссылки.

Узкая коллизия фазы может часто быть столь же простой как "CircleIntersectCircle". Снова библиотеки Bullet имеют хорошие ссылочные реализации. На 3-й земле, когда более точное обнаружение требуется для произвольных объектов, GJK среди текущих сливок - ничто в моем знании не препятствовало бы тому, чтобы он был адаптирован к 2-му (но это могло бы закончиться медленнее, чем просто скот, вызывающий все Ваши края ;)

Наконец, после того, как у Вас есть обнаружение коллизий, Вы часто нуждаетесь какие-то в ответе коллизии. 2-е поле является хорошей начальной точкой для физического решения для ответа.

13
ответ дан 2 December 2019 в 19:33
поделиться

Книга 'Обнаружение коллизий В реальном времени' Christer Ericson (ISBN: 1-55860-732-3), недавнее (2005) и широко похвалившая книга, которая должна дать Вам некоторые хорошие ответы.

Это запускается с основной краткой информации части математики, которую Вы должны будете знать и затем входите в различные типы ограничивающих объемов (сферы, выровненные осью ограничительные рамки, ориентировал ограничительные рамки), наиболее часто используемый в обнаружении коллизий.

Затем для обсуждения многочисленные алгоритмы для обнаружения коллизий между различными комбинациями примитивов, такими как строки, треугольники, сферы, полигоны, плоскости, ограничивающие объемы и т.д.

Также важный покрытие некоторых главных методов пространственного разделения и организации Ваших объектов (иерархии объема, деревья BSP, Деревья октантов, и т.д.). Это по существу ускоряет обнаружение коллизий, поскольку оно позволяет Вам подразделять свои объекты, таким образом, можно избежать ненужных сравнений между объектами (например, Я знаю от своих структур данных, которые возражают, что A должен слишком далеко поразить объект B, таким образом, я даже не сделаю проверки расстояния).

Это также включает некоторое покрытие того, как на самом деле проверить на коллизии между перемещением объектов (интервалы, и т.д.), но знать, что даже при том, что это - довольно значительная книга и покрывает материал хорошо, это для обнаружения коллизий, не разрешения или ответа. Таким образом, это поможет Вам определить, столкнулись ли два объекта, но не действительно, что делать с этим, т.е. как разрешить его. Тесты на пересечение будут обычно давать Вам данные, необходимо принять такие решения, но с точки зрения общей проблемы записи решателя, который использует стандартные программы обнаружения коллизий, чтобы обнаружить коллизии и затем решить, что сделать о них, эта книга не касается этого подробно.

1
ответ дан 2 December 2019 в 19:33
поделиться

Метасетевое программное обеспечение опубликовало некоторые соответствующие учебные руководства. Метасеть разрабатывает N (Основанный на Flash, для Windows, Mac, Linux) и N + (для X360, DS и PSP).

2
ответ дан 2 December 2019 в 19:33
поделиться

Если Ваши объекты представлены как точки в 2D пространстве, можно использовать пересечение строки, чтобы определить, столкнулись ли два объекта. Можно использовать подобную логику, чтобы проверить, ли объект в другом объекте (и таким образом они столкнулись, даже любая из их строк в настоящее время не пересекается). Математика, чтобы сделать это довольно просто, и должно быть охвачено любым учебником по базовой геометрии. Обнаружение, если объект передал полностью через объект, могло бы быть немного более хитрым все же.

0
ответ дан 2 December 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: