QuadTree для обнаружения двухмерных столкновений

В настоящее время я работаю над 2D-игрой типа «стреляй в них», и я использую дерево квадратов для обнаружения столкновений. . Я написал рабочее дерево квадратов, которое правильно помещает моих актеров в узлы / листья, которым они принадлежат в дереве. Однако, У меня есть несколько проблем.

Во-первых, как мне на самом деле использовать свое квадродерево, чтобы выбрать, против каких других объектов объект должен проверять столкновения? Я не уверен, как это делается.

Отсюда возникает второй вопрос. Скажем, у меня есть объект в узле, который не является соседом другого узла, но этот объект достаточно велик, чтобы охватить несколько узлов, как я могу проверить наличие фактического столкновения, поскольку я предполагаю, что дерево может считать, что это не так достаточно близко, чтобы столкнуться с объектами в "далеком" узле? Следует ли оставлять объекты, которые не полностью помещаются в узел, в родительском узле?

В моей игре большинство объектов имеют разные размеры и перемещаются.

Я прочитал много блогов / статьи о квадродеревьях, но большинство из них просто объясняют, как построить дерево, которое на самом деле не то, что я ищу.

Любая помощь / информация приветствуются.

16
задан Smi 6 January 2013 в 13:00
поделиться