如何从组中的精灵中调用函数?

时间:2015-02-22 12:43:56

标签: python events pygame sprite

我有一个Sprite课程,但我在一个小组中。每次单击鼠标按钮,我都想从类中调用一个函数。应该为组中的每个项目调用该函数。

我只知道如何从组中的每个项目调用update函数,但如果不是每次鼠标点击都调用该函数,代码就会非常慢。我会在每一帧上调用它。

为了更清楚,我将举一个例子:

class sprite_object(pygame.sprite.Sprite):
    def __init__(self):
        super(sprite_object, self).__init__()

    def on_mouse_click(self):
        #when the mouse is clicked to some stuff
        pass

    def update(self):
        #do some stuff every frame
        pass

sprite_object_1 = sprite_object()
sprite_object_2 = sprite_object()

group_of_sprites = pygame.sprite.Group()

group_of_sprites.add(sprite_object_1, sprite_object_2)

现在,我可以调用on_mouse_click函数中的update函数,但这会使代码效率低下。

如何从组中的每个对象调用on_mouse_click函数?

1 个答案:

答案 0 :(得分:1)

精灵组对象的sprites()方法返回此精灵组对象包含的精灵列表。

您可以遍历此列表(即您的精灵组groupe_of_sprites拥有的所有精灵)来调用每个人on_mouse_click()的{​​{1}}方法:

sprite_object