Как вы используете коллизию на основе круга с методами групповой коллизии в Pygame?

Изучив документацию и различные учебные сайты, я до сих пор не могу понять, как вы модифицируете метод sprite.collide с помощью чего-либо, кроме обнаружения столкновений с прямоугольной ограничивающей рамкой.

У меня есть программа, которая должна обнаруживать столкновение между спрайтом «Крючок» и любой из нескольких рыб, хранящихся в группе спрайтов под названием «рыбки»

Я могу использовать:

for hit in pygame.sprite.spritecollide(self, self.fishies)

для возврата списка сталкивающихся спрайтов с использованием ограничивающих прямоугольников, но я хочу использовать круги или маски.

В документации сказано, что я могу использовать:

pygame.sprite.spritecollide(self, self.fishies, False, collided = None)

где «collided» — это функция обратного вызова. Но я не могу понять, что это значит. Простая запись:

 pygame.sprite.spritecollide(sprite, group, dokill, pygame.sprite.collide_circle())

выдает ошибку.

Может ли кто-нибудь помочь, или я неправильно понял, как это должно работать?

6
задан Steve Paget 28 April 2012 в 13:07
поделиться