Как правило, для обнаружения столкновений в играх с холстом я использую что-то вроде:
function collides(a, b) {
return a.x < b.x + b.width &&
a.x + a.width > b.x &&
a.y < b.y + b.height &&
a.y + a.height > b.y;
}
Но это только обнаруживает столкновения, если объекты касаются во время обработки кадра. Если у меня есть спрайт, скорость которого (в пикселях/раме) больше ширины препятствия на его пути, он пройдет через препятствие без обнаружения столкновения.
Как я могу проверить, что между спрайтом и его пунктом назначения?