Этот тип испытания на столкновение называется приведение лучей .Его реализация может варьироваться от простой до очень сложной, в зависимости от вашего конкретного приложения и того, сколько времени вы готовы инвестировать в повышение производительности.Определенно ищите в Интернете тему, если вам интересно, или возьмите книгу по программированию игр.Это обычная операция для 3D-игр.
Если вы знаете, что когда-либо будет только 2 пули, то вы можете решить эту проблему, просто проверив расстояние между лучом, созданным выпущенной пулей, и другой пулей.Если расстояние меньше, чем суммарный радиус пуль, то вы знаете, что они попали.
Если вы создаете какой-то игровой движок, в котором будет перемещаться множество пуль, то самый простой способ, которым я могуподумайте о том, чтобы добиться этого, чтобы перемещать пулю вдоль луча, из которого она выпущена (путем нормализации вектора движения пули), с небольшими приращениями (не больше радиуса пули) и выполнять проверку столкновения на каждом этапе.
Независимо от того, какой метод приведения лучей вы используете, он будет тесно интегрирован с любой системой, которую вы используете для пространственного разбиения .Невозможно избежать запроса многих пространственных местоположений во время приведения лучей, поэтому убедитесь, что вы используете эффективную систему разделения пространства для своих целей.