Если у меня есть спрайт, как бы я проверил столкновение между двумя точками? Например, в игре, которую я делаю, я хотел бы нарисовать несколько строк, с которыми сталкивается спрайт. Я думаю, что это более гибко, чем другие системы столкновений, если у меня было много платформ.Sprite to Line Collision
ответ
Простая логика может помочь уменьшить потраченный впустую расчет, т. Е. Если вершина спрайта ниже, то обе точки, вы не можете столкнуться. Сортировка простой проверки столкновений с ограничивающей коробкой.
Как только вы это сделаете, я предлагаю вам получить формулу для вашей линии, а затем проверить, какие из углов вашего спрайта лежат выше или ниже этой линии. Если они не все лежат на одной стороне, у вас есть столкновение.
например, если ваша линия была y=x/2+2
, начиная с x = -20, заканчивающегося на x = 20, и у вас был квадрат спрайт 3 широкий/высокий (3, -1), тогда у вас есть четыре точки вашего спирта (3, -1) (3,2) (6,2) (6, -1). Вы определяете значение y линии в этих двух положениях x, которые дают y = 3,5 при x = 3 и y = 5 при x = 6, все эти значения y больше, чем значения y куба, куб находится ниже линии.
Спасибо за ответ! – Alu
Что делать, если линия была прямой? –
Я думаю, что мой метод все равно будет работать. Он в основном рассматривает строку как поле и проверяет, попадает ли какой-либо из углов спрайта в этот квадрат, который делает линия. Это очень грубый метод, но для простой вещи он будет работать. – thecoshman