Возможно, вы хотите многоэтапный процесс.
Сначала определите «центр» и «радиус» для каждого объекта так, чтобы линия, проведенная вокруг центра на выбранном радиусе, полностью охватывала объект без «слишком большого дополнительного».(Вы определяете, насколько усердно вы работаете, чтобы определить центр и радиус, чтобы предотвратить «слишком много».)
Необязательный следующий шаг - как-то разделить экран на квадранты / секции и вычислить, какие объекты (основываясь на их центрах)и радиусы) полностью лежат в одном квадранте, который охватывает границу квадранта, который охватывает 4 квадранта и т. д. Это позволяет поднаборить следующий шаг и рассматривать только пары объектов, которые находятся в одном и том же квадранте или где один из двух является промежуточнымтого или иного рода.
Затем между каждой парой объектов рассчитайте расстояние от центра до центра, используя теорему Пифагора.Если это расстояние меньше суммы радиусов двух объектов, то у вас есть потенциальное столкновение.
Наконец, вам нужно немного разбираться в расчетах реальных столкновений.Есть несколько разных подходов, в зависимости от формы ваших объектов.Очевидно, что круги покрыты предыдущим шагом, квадраты / прямоугольники (выровненные по осям X / Y) могут быть вычислены довольно хорошо, но нечетные формы сложнее.Одна из схем состоит в том, чтобы на паре «пустых» полотен нарисовать два объекта, а затем И вместе, два пикселя за пикселем, чтобы увидеть, где вы найдете 1 где-нибудь.Существует несколько вариантов этой схемы.