PyGame уже обеспечивает обнаружение столкновений между спрайтами. Обнаружение столкновения передано некоторому коду C и высоко оптимизировано. Вы не должны пытаться переоценить вычисления столкновений в Python, поскольку они, конечно, не будут такими же быстрыми, как нативное решение PyGame, и это открывает возможность для новых ошибок.
Просмотрите документацию здесь: https://www.pygame.org/docs/ref/sprite.html
Он предоставит информацию о том, как реализовать правильное обнаружение столкновений между спрайтами.
Для вашего примера я предполагаю, что ваши отдельные ракеты и астроиды являются спрайтами в PyGame.
Тогда я предполагаю, что отдельные ракеты и астроиды находятся в группах спрайтов, называемых «ракеты» и «астроиды».
Если это так, вы можете просто сделать следующее:
pygame.sprite.groupcollide(missiles, astroids, true, true)
Эта команда будет проверять наличие столкновений между ракетами и астроидами и уничтожать / уничтожать любой из спрайтов, для которых обнаружено столкновение. Вы также можете предоставить пользовательскую функцию расчета коллизий, чтобы определять коллизии, если у ваших спрайтов нет «прямоугольного» значения.