sprite在pygame中碰撞时如何调用另一个函数

时间:2011-06-13 02:22:10

标签: python sprite pygame

我有以下一些代码用于删除apple_listsnake精灵发生碰撞时的所有精灵。我想知道的是当snake精灵与来自apple_list的精灵发生碰撞时,最好的方法是什么。例如,如果我想在每次发生声音时播放声音,那么最简单的方法是什么?

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

2 个答案:

答案 0 :(得分:4)

您可以将析构函数方法分配给在精灵被杀死时播放声音的苹果精灵:

class apple(object):

    ...

    def __del__(self):
        play_sound("fing.ogg")

答案 1 :(得分:1)

不幸的是,pygame中的精灵冲突期间没有回调管理。

在你的情况下,你应该使用这样的东西:

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