В игре, которую я разрабатываю, есть взрыв, который стреляет из начальной точки в направлении мыши. Ширина этого взрыва всегда будет одинаковой.
Внизу экрана (то, что в данный момент) движутся квадраты, на которые должен воздействовать взрыв, контролируемый игроком.
В настоящее время я пытаюсь найти способ обнаружить, находятся ли углы этих квадратов в двух ограничивающих линиях взрыва. Я подумал, что лучший способ сделать это - повернуть углы квадрата вокруг исходной точки, как если бы взрыв был полностью горизонтальным, и посмотреть, были ли значения Y углов меньше или равны ширине взрыва, что Я имею в виду, что они находятся в зоне воздействия, но я не могу работать
Ответы:
Точка находится между двумя параллельными линиями, если это одна сторона одной линии и другая сторона другой линии (при условии, что линии указывают в одном направлении).
Вы можете использовать верхний ответ на этот вопрос в stackoverflow, чтобы выяснить, на какой стороне линии (определенной 2 точками на ней) лежит точка.
Альтернативным методом будет вычисление расстояния от точки до средней линии и сравнение его с половиной толщины вашего взрыва.
источник
Вот как я это делаю (с дополнительной проверкой, являются ли предоставленные плоскости фактически параллельными. Объекты Плоскости содержат уравнение плоскости в такой форме: Ax + By + Cz + D = 0, которое вы можете легко сгенерировать из 3 заданных точки, или из точки и нормали (см. эту страницу, если вы не уверены в математике: http://paulbourke.net/geometry/pointlineplane/ )
источник