AS3 Bullet hitcan - PullRequest
       1

AS3 Bullet hitcan

0 голосов
/ 04 января 2011

Взгляните на этот сценарий, у меня есть два персонажа, один стреляет двумя пулями в направлении другого персонажа, пули запускаются мгновенно и движутся с бесконечной скоростью, как обнаружить столкновение?

Вот изображение, иллюстрирующее проблему:

Красная пуля будет явно отсутствовать, но зеленая пуля попадет, как выполнить этот вид испытания на столкновение?

1 Ответ

5 голосов
/ 04 января 2011

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

Если вы знаете, что когда-либо будет только 2 пули, то вы можете решить эту проблему, просто проверив расстояние между лучом, созданным выпущенной пулей, и другой пулей.Если расстояние меньше, чем суммарный радиус пуль, то вы знаете, что они попали.

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...