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

У меня есть класс 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?
  •  
    Interesting Posts for Van-Lav

    Какая связь или различие между леммой и синхронизацией в wordnet?

    Что вызывает «нет жизнеспособной альтернативы при вводе ошибки« Нет »с Cassandra CQL

    Python: содержат ли списки Python счетчик для len () или он рассчитывает на каждый вызов?

    TypeError: super () принимает не менее 1 аргумента (0 данных), которая является конкретной для любой версии python?

    Не удается установить pyaudio, gcc error

    dgemm segfaulting с большими матрицами F-порядка в scipy

    setuptools: расположение папки данных пакета

    PyCrypto на сервере разработки Google App Engine «ImportError: невозможно импортировать имя blockalgo»

    Как сопоставить аналогичные координаты с помощью Python?

    Как передать список из представления в шаблон в django

    Ошибка установки программы

    for – else vs для elif

    Преобразование списка строк в Python в float, где в списке также содержатся слова

    people.connections.list не возвращает контакты с помощью клиентской библиотеки Python

    UTF-8 и верхний ()

    Python - лучший язык программирования в мире.