Смотря как они заданы. Возможно, наипростейший способ — посчитать, пересекается ли отрезок «начало полета снаряда — конец полета снаряда» с каждой из сторон 2d-объектов. Если пересекается, то кирдык. Надо только решить, что делать, если этот отрезок пересекает вершину препятствия.
Нужно взять уравнение прямой отрезка полёта снаряда, и проверить, не лежит ли какая-то из сторон многоугольников, ограничивающих 2d-препятствия, в разных полуплоскостях от этой прямой. Если да, то есть пересечение.
По-моему это перемножением векторов делается, но могу и ошибаться, надо погуглить.