Как вызвать функции из спрайтов в группах?

У меня есть класс 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 каждого объекта в группе?

One Solution collect form web for “Как вызвать функции из спрайтов в группах?”

Метод sprites() объекта группы спрайтов возвращает список спрайтов, содержащихся в этом объекте группы спрайтов.

Вы можете выполнить итерацию через этот список (т. groupe_of_sprites Все спрайты вашей группы спрайтов groupe_of_sprites ) для вызова on_mouse_click() для каждого отдельного sprite_object :

 for sprite_object in groupe_of_sprites.sprites(): sprite_object.on_mouse_click() 
  • Как заставить врага следовать за игроком в pygame?
  • Pygame Создание лица спрайта Мышь
  • Движение Pygame - sprite вызывает слои
  • PYGAME делает движение спрайта в направлении, в котором он находится
  • Недостаточно памяти при использовании pygame.transform.rotate
  • Python - лучший язык программирования в мире.