Ваша игра уже имеет концепцию карты тайлов, связанной с игровым процессом.Вы можете использовать эту карту тайлов для обнаружения столкновений или наложить вторичную сетку на игровое поле, используемое специально для отслеживания спрайтов и обнаружения столкновений.
В вашей сетке каждый спрайт занимает одну или несколько плиток.Спрайт знает, какие плитки он занимает, а плитки знают, какие спрайты занимают его.Когда спрайт перемещается, вам нужно только проверять наличие столкновений внутри тайлов, которые занимает спрайт.Это означает, что обнаружение столкновений вообще не требуется, если только спрайты не расположены достаточно близко, чтобы занимать одни и те же плитки, и даже тогда вам нужно только проверять наличие столкновений между спрайтами, которые находятся близко друг к другу.из-за того, что спрайты часто собираются вместе, вы можете реализовать свою сетку в качестве квадродерева, чтобы разрешить подразделение каждой плитки и не позволять слишком большому количеству спрайтов занимать одну и ту же плитку сетки.может потребоваться использовать немного большую ограничивающую рамку для определения занятости плитки, чем вы используете для определения коллизий.Таким образом, вам будет гарантировано, что спрайты будут перекрываться и занимать одну и ту же плитку до того, как их границы столкновения коснутся.