как вызвать другую функцию, когда спрайты сталкиваются в Pygame - PullRequest
1 голос
/ 13 июня 2011

У меня есть следующий фрагмент кода, который я использую для удаления всех спрайтов в apple_list, когда они сталкиваются со спрайтом snake. Я хотел бы знать, каков наилучший способ добиться чего-либо, когда спрайт snake сталкивается со спрайтом из apple_list. Например, если я хотел проигрывать звук каждый раз, когда это происходит, какой самый простой способ сделать это?

hitApples = pygame.sprite.spritecollide(snake, apple_list, True)

Ответы [ 2 ]

4 голосов
/ 16 октября 2012

Вы можете назначить метод-деструктор для яблочных спрайтов, которые воспроизводят звуки при уничтожении спрайта:

class apple(object):

    ...

    def __del__(self):
        play_sound("fing.ogg")
1 голос
/ 13 июня 2011

К сожалению, во время столкновения спрайтов в Pygame отсутствует управление обратным вызовом.

В вашем случае вы должны использовать что-то вроде этого:

hitApples = pygame.sprite.spritecollide(snake, apple_list, True)
if hitApples:
    callback()
...