2010-10-21 3 views
2

Как хобби, я разрабатываю 2D-игру. У меня есть базовое обнаружение столкновений, реализованное с использованием метода разделительной оси. Когда сталкиваются два объекта, я проецирую одно из них из столкновений по оси, которая имеет наименьшее количество перекрытий.Проектирование объектов вне столкновений

Проблема, с которой я сталкиваюсь, заключается в том, что, когда объект движется довольно быстро, ось, которая имеет наименьшее количество перекрытий, не всегда является правильным направлением. Лучший пример: когда объект движется вниз (вдоль оси + y) из-за симулированного гравитационного притяжения и сталкивается с объектом окружения, близким к «краю» (как на краю скалы). Если объект падал достаточно быстро, ось с наименьшим количеством перекрывающихся ветров становится осью х, и объект сдвигается вбок вдоль оси х.

Каков наилучший способ обработки быстро движущихся объектов? Я подумывал о перемещении падающего объекта небольшими приращениями, что, похоже, добавляет много дополнительных накладных расходов. Я также подумал о том, чтобы предоставить объектам среды «предпочтение», для которой ось проецирует падающий объект, но это кажется беспорядочным и подверженным ошибкам.

Есть ли способ сделать это, не добавляя много дополнительных накладных расходов?

ответ

1

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

link text

+0

Ну, вы также можете проверить непрерывное обнаружение столкновений - HTTP: // www.gamedev.net/reference/programming/features/ellipsoid-ccd/ –

+0

Кроме того, я знаю, что вы делаете это как хобби, но если вы хотите просмотреть хороший 2D-CCD-код, посмотрите Box2D (который также имеет C# порт, называемый Box2DX, если вы входите в эту вещь). С открытым исходным кодом и в хорошем состоянии. –

+0

Благодарим вас за предложения. Материал на CCD выглядит очень интересным. – Pimpl

Смежные вопросы